Your IP : 172.28.240.42


Current Path : /var/www/html/clients/amz.e-nk.ru/gepv3/index/
Upload File :
Current File : /var/www/html/clients/amz.e-nk.ru/gepv3/index/spark-approximate-nearest-neighbor-example.php

<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en" > <![endif]--><!--[if IE 7]>    <html class="no-js lt-ie9 lt-ie8" lang="en" >        <![endif]--><!--[if IE 8]>    <html class="no-js lt-ie9" lang="en" >               <![endif]--><!--[if gt IE 8]><!--><!--<![endif]-->
    
  <meta charset="utf-8">

    
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

  <meta name="description" content="">

    
    
    
  <title></title>
   
  <meta name="viewport" content="width=device-width, initial-scale=1">


    
    
  <style>
{-moz-box-sizing:content-box !important;-webkit-box-sizing:content-box !important;box-sizing:content-box !important;vertical-align:middle}.hs-breadcrumb-menu{list-style-type:none;margin:0px 0px 0px 0px;padding:0px 0px 0px 0px}.hs-breadcrumb-menu-item{float:left;padding:10px 0px 10px 10px}.hs-breadcrumb-menu-divider:before{content:'›';padding-left:10px}.hs-featured-image-link{border:0}.hs-featured-image{float:right;margin:0 0 20px 20px;max-width:50%}@media (max-width: 568px){.hs-featured-image{float:none;margin:0;width:100%;max-width:100%}}.hs-screen-reader-text{clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute !important;width:1px}
  </style>

  <style>
  #hs_cos_wrapper_widget_1725475057043 .banner-section{ position:relative; }
  #hs_cos_wrapper_widget_1725475057043 .banner-section {
    padding-top: 60px;
padding-bottom: 40px;

  }

  #hs_cos_wrapper_widget_1725475057043 .banner-section:before {
    position: absolute;
    content: "";
    background: rgba(0, 84, 141,);
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    bottom: 0;
    z-index:1;
  }
  @media(min-width:768px) and (max-width:1024px){
    #hs_cos_wrapper_widget_1725475057043 .banner-section {
      padding-top: 100px;
padding-bottom: 100px;

    }
  }
  @media(max-width:767px){
    #hs_cos_wrapper_widget_1725475057043 .banner-section {
      padding-top: 70px;
padding-bottom: 70px;

    }
  }
  </style>


  <style>
#hs_cos_wrapper_widget_176297839692 .container {
  max-width:1210px;
  padding-left:20px;
  padding-right:20px;
  margin:0 auto;
  float:none;
  width:100%;
}

#hs_cos_wrapper_widget_176297839692 .ICTC2_f21 { overflow:hidden; }

#hs_cos_wrapper_widget_176297839692 .ICTC2_f21 .ICTC2_f21_main .ICTC2_f21_left { position:relative; }

#hs_cos_wrapper_widget_176297839692 .ICTC2_f21 .ICTC2_f21_main .ICTC2_f21_right {
  padding:50px 0 50px 85px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
}

#hs_cos_wrapper_widget_176297839692 .ICTC2_f21 . .ICTC2_f21_right { padding:50px 85px 50px 0; }

#hs_cos_wrapper_widget_176297839692 .ICTC2_f21 . { flex-direction:row-reverse; }

#hs_cos_wrapper_widget_176297839692 .ICTC2_f21 .ICTC2_f21_main .bg-contained-img {
  background-size:contain;
  background-repeat:no-repeat;
}

#hs_cos_wrapper_widget_176297839692 .ns .ICTC2_f21 *+p { margin-top:20px; }

#hs_cos_wrapper_widget_176297839692 .ICTC2_f21 .ICTC2_f21_main ul li a { color:#4ac1e0; }

#hs_cos_wrapper_widget_176297839692 .ICTC2_f21 .ICTC2_f21_main .ICTC2_f21_right p a:hover,
#hs_cos_wrapper_widget_176297839692 .ICTC2_f21 .ICTC2_f21_main .ICTC2_f21_right ul li a:hover { text-decoration:underline; }

@media (max-width:1024px) {
  #hs_cos_wrapper_widget_176297839692 .ICTC2_f21 .ICTC2_f21_main .ICTC2_f21_right {
    padding:30px 0 45px 30px;
    position:relative;
  }

  #hs_cos_wrapper_widget_176297839692 .ICTC2_f21 . .ICTC2_f21_right {
    padding:30px 45px 30px 0;
    position:relative;
  }

  #hs_cos_wrapper_widget_176297839692 .ICTC2_f21 .ICTC2_f21_main .ICTC2_f21_left { min-height:revert !important; }
}

@media (max-width:767px) {
  #hs_cos_wrapper_widget_176297839692 .ICTC2_f21 .ICTC2_f21_main .ICTC2_f21_right {
    padding:20px 0 20px 20px;
    position:relative;
  }

  #hs_cos_wrapper_widget_176297839692 .ICTC2_f21 .ICTC2_f21_main .ICTC2_f21_left { padding-bottom:60%; }

  #hs_cos_wrapper_widget_176297839692 .ICTC2_f21 . .ICTC2_f21_right {
    text-align:left;
    padding:20px 20px 40px 0;
    position:relative;
  }

  #hs_cos_wrapper_widget_176297839692 .ICTC2_f21 . { flex-direction:column-reverse; }

  #hs_cos_wrapper_widget_176297839692 . { padding-bottom:0; }
}

  </style>

  <link rel="stylesheet" href="">


  <style>
  #hs_cos_wrapper_widget_176297839693 .what-we-do  { position:relative; }
  #hs_cos_wrapper_widget_176297839693 .what-we-do {
    padding-top: 60px;
padding-bottom: 20px;

  }

  
  
  #hs_cos_wrapper_widget_176297839693 .what-we-do h2{
    color: #FFFFFF;
  }

  @media(min-width:768px) and (max-width:1024px){
    #hs_cos_wrapper_widget_176297839693 .what-we-do {
      padding-top: 80px;
padding-bottom: 80px;

    }
  }
  @media(max-width:767px){
    #hs_cos_wrapper_widget_176297839693 .what-we-do {
      padding-top: 60px;
padding-bottom: 60px;

    }

  }
  </style>

  <link rel="stylesheet" href="">


  <style>
  #hs_cos_wrapper_widget_176297839698 .map-section {
    position:relative;
    z-index:1;
    padding-top: 244px;
padding-bottom: 195px;

  }

  @media(min-width:768px) and (max-width:1024px){
    #hs_cos_wrapper_widget_176297839698 .map-section {
      padding-top: 80px;
padding-bottom: 80px;

    }
  }
  @media(max-width:767px){
    #hs_cos_wrapper_widget_176297839698 .map-section {
      padding-top: 60px;
padding-bottom: 60px;

    }

  }
  </style>


  <style>
#hs_cos_wrapper_widget_176297839695 .container {
  max-width:1210px;
  padding-left:20px;
  padding-right:20px;
  margin:0 auto;
  float:none;
  width:100%;
}

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 { overflow:hidden; }

#hs_cos_wrapper_widget_176297839695 .slider_main_parent {
  width:auto;
  margin-right:-100px;
}

#hs_cos_wrapper_widget_176297839695 .slider_box_anchor {
  display:inline-block;
  margin-right:20px;
  cursor:pointer;
}

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .slider_box {
  padding:30px;
  background-color:#01345c;
}

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .slider_box h6 {
  color:#4ac1e0;
  font-size:16px;
  text-transform:uppercase;
  font-weight:400;
}

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .slick-current .slider_box { background-color:#4ac1e0; }

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .slick-current .slider_box h6 {
  color:#fff;
  font-weight:400;
}

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .slick-current .slider_box h3 { color:#01345c; }

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .slider_box h3 { color:#fff; }

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .slider_box .slider_box_img {
  cursor:pointer;
  position:relative;
  height:265px;
  flex-wrap:wrap;
  padding:20px;
  text-align:center;
  display:flex;
  justify-content:center;
  align-items:center;
}

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .slider_box .slider_box_img:before {
  content:'';
  position:absolute;
  width:100%;
  height:100%;
  background-color:rgba(0,0,0,.4);
  z-index:2;
}

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .slider_box .slider_box_img .slider_title { opacity:0.7; }

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .slider_box .slider_box_img .slider_title h5 {
  color:#fff;
  text-shadow:0px 5px  rgba(8,33,54,0.6);
  -webkit-text-shadow:0px 5px  rgba(8,33,54,0.6);
  -moz-text-shadow:0px 5px  rgba(8,33,54,0.6);
}

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 . {
  left:0;
  z-index:99;
}

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 . {
  right:0;
  left:inherit;
  z-index:99;
}

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .slider_box .slider_link {
  width:100%;
  height:100%;
  position:absolute;
  left:0;
  top:0;
  z-index:7;
}

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .slider_box:hover,
#hs_cos_wrapper_widget_176297839695 .slider_box_f21 . .slider_box {
  background-color:#4ac1e0;
  transition:all ease .2s;
  -webkit-transition:all ease .2s;
  -moz-transition:all ease .2s;
}

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .slider_box:hover h6,
#hs_cos_wrapper_widget_176297839695 .slider_box_f21 . .slider_box h6 {
  color:#fff;
  font-weight:400;
}

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .slider_box:hover h3,
#hs_cos_wrapper_widget_176297839695 .slider_box_f21 . .slider_box h3 { color:#01345c; }

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .:before,
#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .:before { display:none; }

#hs_cos_wrapper_widget_176297839695 .ns .slider_box_f21  {
  margin-right:20px;
  letter-spacing:0;
}

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .prev,
#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .next {
  width:15px;
  height:25px;
  position:relative;
  background:none;
  margin:0 15px;
}

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .prev img,
#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .next img { vertical-align:top; }

#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .prev:hover,
#hs_cos_wrapper_widget_176297839695 .slider_box_f21 .next:hover { background:none; }

#hs_cos_wrapper_widget_176297839695 .slider_main2 { display:none; }

#hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .row-fluid .btn_cta3 a,
#hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .row-fluid .btn_cta3  { background-image:url(); }

#hs_cos_wrapper_widget_176297839695 .ns .jcfe { justify-content:flex-end; }

@media (min-width:768px) {
  #hs_cos_wrapper_widget_176297839695  .row-fluid .header_section {
    padding-left:0;
    padding-right:0;
  }

  #hs_cos_wrapper_widget_176297839695  .row-fluid .header_section .wrapper2 {
    float:none;
    padding-left:20px;
    padding-right:20px;
    margin:0 auto;
    width:1400px;
    max-width:100%;
  }
}

#hs_cos_wrapper_widget_176297839695  .slider_main2 { display:block; }

#hs_cos_wrapper_widget_176297839695  .slider_main2>div {
  min-width:1280px;
  display:flex;
  justify-content:center;
  border-top:1px solid #fff;
  background-color:#01345c;
  width:100%;
}

#hs_cos_wrapper_widget_176297839695  .slider_main2 .slider_box { padding:12px 10px; }

#hs_cos_wrapper_widget_176297839695  .slider_main2 .slider_box h6 {
  font-size:10px;
  padding-bottom:0;
  line-height:1.2;
  color:#4ac1e0;
  text-transform:uppercase;
  font-weight:400;
}

#hs_cos_wrapper_widget_176297839695  .slider_main2 .slider_box h3 {
  font-size:16px;
  line-height:1.2;
  color:#fff;
  margin-top:2px;
  padding-bottom:0;
}

#hs_cos_wrapper_widget_176297839695  .slider_main2 .slider_box_anchor {
  cursor:pointer;
  margin-right:0;
}

#hs_cos_wrapper_widget_176297839695  .slider_main2 .slider_box_anchor:hover,
#hs_cos_wrapper_widget_176297839695  .slider_main2 . {
  background-color:#4ac1e0;
  transition:all ease .2s;
  -webkit-transition:all ease .2s;
  -moz-transition:all ease .2s;
}

#hs_cos_wrapper_widget_176297839695  .slider_main2 .slider_box_anchor:hover h6,
#hs_cos_wrapper_widget_176297839695  .slider_main2 . h6 { color:#fff; }

#hs_cos_wrapper_widget_176297839695  .slider_main2 .slider_box_anchor:hover h3,
#hs_cos_wrapper_widget_176297839695  .slider_main2 . h3 { color:#01345c; }

@media (max-width:1200px) {
  #hs_cos_wrapper_widget_176297839695  .slider_box_f21 .sticky_section .slider_box { padding:10px; }

  #hs_cos_wrapper_widget_176297839695  .slider_box_f21 .sticky_section .slider_box h6 { font-size:10px; }

  #hs_cos_wrapper_widget_176297839695  .slider_box_f21 .sticky_section .slider_box h3 {
    font-size:16px;
    margin-top:2px;
  }
}

@media (max-width:767px) {
  #hs_cos_wrapper_widget_176297839695 .slider_box_f21 .prev,
  #hs_cos_wrapper_widget_176297839695 .slider_box_f21 .next {
    width:10px;
    height:20px;
  }

  #hs_cos_wrapper_widget_176297839695 .slider_box_f21 .slider_box { padding:20px; }

  #hs_cos_wrapper_widget_176297839695 .slider_box_f21 . .slider_box_img:before { display:block; }

  #hs_cos_wrapper_widget_176297839695 .slider_box_f21 . .slider_box_img {
    transform:scale(1);
    -webkit-transform:scale(1);
    -moz-transform:scale(1);
  }

  #hs_cos_wrapper_widget_176297839695 .slider_box_f21 . .slider_box_img:before,
  #hs_cos_wrapper_widget_176297839695 .slider_box_f21 .slider_box:hover .slider_box_img:before { display:block; }

  #hs_cos_wrapper_widget_176297839695 .slider_box_f21 . .slider_box_img,
  #hs_cos_wrapper_widget_176297839695 .slider_box_f21 .slider_box:hover .slider_box_img {
    transform:scale(1);
    -webkit-transform:scale(1);
    -moz-transform:scale(1);
  }
}

#hs_cos_wrapper_widget_176297839695 .PSTC2_f22 { overflow:hidden; }

#hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .PSTC2_f22_main>div {
  display:flex;
  flex-wrap:wrap;
  padding-top:154px;
  justify-content:space-between;
}

#hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .PSTC2_f22_main .col-5 { width:45%; }

#hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .PSTC2_f22_main .PSTC2_f22_left { position:relative; }

#hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .PSTC2_f22_main .PSTC2_f22_right {
  padding:25px 0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
}

#hs_cos_wrapper_widget_176297839695 .PSTC2_f22 . .PSTC2_f22_right { padding:25px 0; }

#hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .>div {
  flex-direction:row-reverse;
  width:100%;
}

#hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .PSTC2_f22_main .bg-contained-img {
  background-size:contain;
  background-repeat:no-repeat;
}

#hs_cos_wrapper_widget_176297839695 .ns .PSTC2_f22 *+p { margin-top:20px; }

#hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .PSTC2_f22_main .PSTC2_f22_right p a:hover,
#hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .PSTC2_f22_main .PSTC2_f22_right ul li a:hover { text-decoration:underline; }

#hs_cos_wrapper_widget_176297839695 .PSTC2_dropdown { display:none; }

#hs_cos_wrapper_widget_176297839695 .row-fluid .btn_cta3  {
  letter-spacing:0;
  background-image:none;
  font-size:20px;
  font-weight:300;
  text-transform:inherit;
  line-height:1.2;
}

@media (max-width:1280px) {
  #hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .PSTC2_f22_main>div { padding-top:130px; }

  #hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .PSTC2_f22_main .col-5 { width:47%; }

  #hs_cos_wrapper_widget_176297839695  .slider_main2 { overflow-x:scroll; }
}

@media (max-width:1024px) {
  #hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .PSTC2_f22_main>div { padding-top:100px; }

  #hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .PSTC2_f22_main .PSTC2_f22_left { min-height:revert !important; }

  #hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .PSTC2_f22_main .col-5 { width:48%; }
}

@media (max-width:767px) {
  #hs_cos_wrapper_widget_176297839695  .slider_main2,
  #hs_cos_wrapper_widget_176297839695 .slider_box_f21 { display:none; }

  #hs_cos_wrapper_widget_176297839695 .PSTC2_dropdown {
    display:block;
    background-color:#00335b;
    padding:30px 0;
  }

  #hs_cos_wrapper_widget_176297839695 .ns .PSTC2_dropdown  {
    color:#fff;
    text-align:center;
  }

  #hs_cos_wrapper_widget_176297839695 .ns .PSTC2_dropdown select,
  #hs_cos_wrapper_widget_176297839695 .ns .PSTC2_dropdown select option {
    white-space:nowrap;
    text-overflow:ellipsis;
    max-width:100%;
    -webkit-appearance:inherit !important;
    margin-top:20px;
    font-size:20px;
    background-color:transparent;
    border:1px solid #fff;
    font-weight:300;
    color:#4ac1e0;
  }

  #hs_cos_wrapper_widget_176297839695 .ns .PSTC2_dropdown select {
    background-position:98% 15px;
    padding-right:30px;
    background-repeat:no-repeat;
    background-size:15px auto;
    background-image:url();
  }

  #hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .container {
    padding-left:0;
    padding-right:0;
  }

  #hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .PSTC2_f22_main>div { padding-top:30px; }

  #hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .PSTC2_f22_main:first-child { margin-top:0; }

  #hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .PSTC2_f22_main .col-5 { width:100%; }

  #hs_cos_wrapper_widget_176297839695 .PSTC2_f22 . .PSTC2_f22_right,
  #hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .PSTC2_f22_main .PSTC2_f22_right {
    padding:40px 20px !important;
    position:relative;
  }

  #hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .PSTC2_f22_main .PSTC2_f22_left { padding-bottom:60%; }

  #hs_cos_wrapper_widget_176297839695 .ns .dis_flex {
    flex-direction:inherit;
    width:100%;
  }

  #hs_cos_wrapper_widget_176297839695 .PSTC2_f22 .>div { width:100%; }
}

  </style>

  <style>
  .header_sec .site_navigation,
  .header_sec .hs-menu-wrapper > ul >  > ul:after,
  .childWrapper{  background-color:rgba(37, 37, 37,1.0); }
  

  @media (min-width: 993px){
    .header_sec .hs-menu-wrapper > ul >  > ul:before,
    .childWrapper:before{ content:''; width:100%; height:100%; position:absolute; left:0; top:0; background-repeat:no-repeat; z-index:2; background-size:auto 100%; background-position:top left;  background-image:url(); }
    .header_sec .hs-menu-wrapper > ul >  > ul:after{ content:''; position:absolute; width:300vw; left:-100vw; right:-100vw; top:0; height:100%; z-index:1; }
    .header_sec .hs-menu-wrapper > ul >  > ul:before{ left: ; right: inherit; width: 100vw; }
    .header_sec .hs-menu-wrapper > ul > :nth-child(4) > ul:before{ left:; }
    .header_sec .hs-menu-wrapper > ul > :nth-child(6) > ul:before{ left:; }

  }
  
  @media (max-width: 992px){
    .header_sec .site_navigation:before{ content:''; width:100%; height:100%; position:absolute; left:0; top:-79px; background-repeat:no-repeat; background-size:45% auto; background-position:top right;  background-image:url(); }
  }
  

  </style>
</head>
<body class="appear-animate top-strip hs-content-id-40807061795 hs-site-page page" style="">

    
<div class="header-container-wrapper">
    
<div class="header-container container-fluid">

<div class="row-fluid-wrapper row-depth-1 row-number-1">
<div class="row-fluid">
<div class="span12 widget-span widget-type-custom_widget" style="" data-widget-type="custom_widget" data-x="0" data-w="12">
<div id="hs_cos_wrapper_module_16517597077182252" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
<div class="header_sec" style="">
  
<div class="header_sec_inner">
    
<div class="wrapperHead">
      
<div class="disFlex aic"><br>
<div class="site_navigation"><span id="hs_cos_wrapper_module_16517597077182252_" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_menu" style="" data-hs-cos-general-type="widget" data-hs-cos-type="menu"></span>
<div class="search-section">
            
<div class="top-search hubl-search"><span class="search-icon"></span></div>
  
          </div>

        </div>

      </div>

    </div>

  </div>

</div>



</div>


</div>
<!--end widget-span -->
</div>
<!--end row-->
</div>
<!--end row-wrapper -->

    </div>
<!--end header -->
</div>
<!--end header wrapper -->

<div class="body-container-wrapper">
    
<div class="body-container container-fluid">

<div class="row-fluid-wrapper row-depth-1 row-number-1">
<div class="row-fluid">
<div class="span12 widget-span widget-type-widget_container ns" style="" data-widget-type="widget_container" data-x="0" data-w="12">
<span id="hs_cos_wrapper_module_16373133427181170" class="hs_cos_wrapper hs_cos_wrapper_widget_container hs_cos_wrapper_type_widget_container" style="" data-hs-cos-general-type="widget_container" data-hs-cos-type="widget_container">
<div id="hs_cos_wrapper_widget_1725475057043" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module" style="" data-hs-cos-general-type="widget" data-hs-cos-type="module">
<div class="banner-section" style="background: transparent url() no-repeat scroll center; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;">
  
<div class="container">
    
<div class="text-white banner_inner">
      
<h1>Spark approximate nearest neighbor example.  Otherwise, search_k and n_trees are roughly independent, i.</h1>

<p><span>Spark approximate nearest neighbor example.  The output should look like this (for N=3): Thus, we use an approximate similarity matching algorithm which allows us to trade off a little bit of accuracy in finding exact nearest neighbor matches for a significant boost in speed. 4.  This uses a hybrid spill tree approach to achieve high accuracy and search efficiency. x and above. , MinHash), and APIs for feature transformation, approximate similarity join and approximate nearest neighbor are provided in each class.  If you are on an older version you can use the 1. ) but I'm super lost because I didn't find an example or something to guide me.  Figure 6: With numHashTables=5, approximate nearest neighbor ran 2x faster than full scan (as shown on right).  That is why approximate nearest neighbor search algorithms are becoming increasingly popular. x release An Investigation of Practical Approximate Nearest Neighbor Algorithms Ting Liu, Andrew W.  In this section, we&rsquo;ll provide some examples of when this becomes problematic.  cuVS is a new library mostly derived from the approximate nearest neighbors and clustering algorithms in the RAPIDS RAFT library of machine learning and data mining primitives.  The algorithm The dataset to search for nearest neighbors of the key.  In many applications, such as search and recommendation, the results of the nearest neighbor search is combined with additional facets of the request.  Sep 8, 2017 · I need k nearest neighbors for each feature vector in the dataframe.  I am trying to oversample some data in pyspark, as mllib doesn't have inbuilt support for it, i decided to create it myself using smote.  Within the Spark ecosystem, one critical component for approximate nearest neighbor search in large datasets is the MinHash Locality Sensitive Hashing (MinHashLSH) feature. xlarge instances) to perform an approximate nearest neighbor search and approximate similarity join on a sample of WEX datasets. e. ml. 10 (Release in October 2024), cuVS contains the most fully-featured versions of the approximate nearest neighbors and clustering algorithms from RAFT.  The maximum number of nearest neighbors. May 22, 2019 · I want to use the Approximate Nearest Neighbor Search provide by Spark MLlib (ref.  Feature vector representing the item to search for.  Background In many computational problems such as NLP, Recommendation Systems and Search, items (e. com In Spark, different LSH families are implemented in separate classes (e.  words) are represented as vectors in a multidimensional space.  At present, Ignite Spark-based approximate nearest neighbor search using locality-sensitive hashing API Doc Awesome Scala Login karlhigley / spark-neighbors 0.  Otherwise, search_k and n_trees are roughly independent, i.  But it seems that API of BucketedRandomProjectionLSH expects only one key at a time.  the data that I have 20+ columns, more than thousand rows and all the values are numbers.  This is an implementation of the following paper for Spark: Randomized Algorithms and NLP: Using Locality Sensitive Hash Function for High Speed Noun Clustering -- Ravichandran et al.  Spark's MLlib doesn't yet support locality-sensitive hashing or nearest neighbor search. 2. g.  With numHashTables=3, approximate similarity join ran 3x-5x k-Nearest Neighbors algorithm (k-NN) implemented on Apache Spark.  The index is thread safe, serializable, supports adding items to the index incrementally and has experimental support for deletes. edu Abstract This paper concerns approximate nearest neighbor searching algorithms, Sep 15, 2016 · So I need to find nearest neighbors of a given row in pyspark DF using euclidean distance or anything.  Ann4s also provides DataFrame-based API for Apache Spark .  The number of nearest neighbors for synthesizing new examples is fixed to 5.  Java implementation of the the Hierarchical Navigable Small World graphs (HNSW) algorithm for doing approximate nearest neighbour search.  I want to find, for each row of A , the top N rows of B that match it based on that metric.  Scala code example.  While there are LSH Spark packages available for a variety of distance measures, it has been open question how to support multiple distance measures and hashing schemes behind a unified interface.  Moore, Alexander Gray and Ke Yang School of Computer Science Carnegie-Mellon University Pittsburgh, PA 15213 USA ftingliu, awm, agray, yangkeg@cs.  Clears a param from the param map if it has been explicitly set.  May 14, 2022 · I want to use ANN from PySpark.  The technique is based on the observation that, when calculating the distance between the query and points that are farther away than any of the candidates currently on the list, an approximate distance measure will usually suffice.  See full list on talks. I have a DataFrame of 100K keys for which I want to perform top-10 ANN searches on an already transformed Spark DataFrame.  Jul 5, 2016 · Batch computation of the nearest neighbors for each point in a dataset using: - Hamming distance via bit sampling LSH - Cosine distance via sign-random-projection LSH Feb 24, 2024 · In other words, the query data point must be matched across all data points to find the nearest neighbor(s).  k is a positive integer, typically small.  Dec 17, 2020 · Nearest neighbors in search and recommendation. x.  This library A Scala Implementation of Annoy which searches nearest neighbors given query point.  May 9, 2017 · Using an AWS cloud, we used 16 executors (m3. .  In this tutorial, we show an example of real-time text search over a corpus of news headlines to find the headlines that are most similar to a query.  This is highly inefficient, especially when we have many data points and a near-real-time response is necessary.  Approximate nearest neighbors in TSNE Caching nearest neighbors Comparing Nearest Neighbors with and without Neighborhood Components Analysis Dimen A spark library for approximate nearest neighbours (ANN).  Output column for storing the distance between each result row and the key.  That is for every item in the input dataset find the k-nearest neighbours above a certain threshold similarity.  Use &ldquo;distCol&rdquo; as default value if it&rsquo;s not clear (param).  An object is classified by the majority votes of its neighbors.  Spark / PySpark integration for the hsnwlib project that was originally part of the core hnswlib project.  code for creating the model brp Sep 18, 2024 · The k-nearest neighbors algorithm (kNN) is a lazy learner in which the predicted class for a query example is determined based on the classes of the k reference or training examples nearest to it.  Only 2 of the 5 nearest neighbors remain after filtering (image by Examples concerning the sklearn.  If search_k is not provided, it will default to n * n_trees where n is the number of approximate nearest neighbors. anghami. 2 Nov 13, 2021 · As Approx-SMOTE follows Spark-ML design guidelines, its use is similar to any other Transformer in the Spark API.  I'm using BucketedRandomProjectionLSHModel from pyspark.  Sep 5, 2024 · I would like to do an approximate N-nearest neighbor join using cosine similarity.  The object is assigned to a particular class that is most common among its k nearest neighbors.  As of version 24.  Code 1 shows a basic example where a dataset is loaded and then oversampled doubling the minority class.  It enables nearest neighbor search in a batch offline context within the cosine, jaccard and euclidean distance spaces.  Version 2 of this library is only compatible with spark 3.  In a paper we presented at this year&rsquo;s Web Conference, we describe a new technique that makes graph-based nearest-neighbor search much more efficient.  There is a special case when k is 1, then the object is simply assigned to the class of that single nearest neighbor.  The algorithms performs a so called ANN-Join (Approximate Nearest Neighbours Join).  The simplicity of k-NN and lack of tuning parameters makes k-NN a useful baseline model for many machine learning problems.  numNearestNeighbors int. cmu.  key pyspark.  Creates a copy of this instance with the same uid and some extra params. linalg. Vector.  Jul 10, 2024 · One such tool is Apache Spark, a powerful open-source, distributed computing system, which comes with an array of features tailored for data science and data engineering.  the value of n_trees will not affect search time if search_k is held constant and vice versa.  Hnswlib Spark includes a brute-force nearest neighbor search implementation, which is slow but always accurate.  distCol str.  copy ([extra]). neighbors module.  The only info provided for the prev Aug 18, 2021 · Annoy ( Approximate Nearest Neighbors Oh Yeah) is a C++ library with Python bindings to search for points in space that&hellip; Approximate nearest neighbor (ANN) search sacrifices some accuracy for much faster queries.  While quite simple, k NN can be highly accurate and is often used for classification problems.  Scalable Approximate Nearest Neighbor Search (ScANNS) ScANNS is a nearest neighbor search library for Apache Spark originally developed by Namit Katariya from the LinkedIn Machine Learning Algorithms team.  <a href=http://test.alikson.dev.e-comexpert.ru:80/7jzgj/scuba-harness-hardware-kit.html>iflro</a> <a href=http://test.alikson.dev.e-comexpert.ru:80/7jzgj/cumberland-county-north-carolina.html>vsegd</a> <a href=http://test.alikson.dev.e-comexpert.ru:80/7jzgj/american-plastics-st-louis.html>bccnsyh</a> <a href=http://test.alikson.dev.e-comexpert.ru:80/7jzgj/my-saved-passwords-on-this-device.html>brgk</a> <a href=http://test.alikson.dev.e-comexpert.ru:80/7jzgj/custom-webbing-with-logo.html>ewxlkmq</a> <a href=http://test.alikson.dev.e-comexpert.ru:80/7jzgj/rock-climbing-gear-amazon.html>qwhgk</a> <a href=http://test.alikson.dev.e-comexpert.ru:80/7jzgj/furniture-repair-parts.html>uhuugxn</a> <a href=http://test.alikson.dev.e-comexpert.ru:80/7jzgj/moorhead-ms-obituaries.html>muw</a> <a href=http://test.alikson.dev.e-comexpert.ru:80/7jzgj/google-l3.html>lzjezx</a> <a href=http://test.alikson.dev.e-comexpert.ru:80/7jzgj/rockingham-county-jail-bookings.html>mrmk</a> </span></p>
</div>
</div>
</div>
</div>
</span></div>
</div>
</div>
</div>
</div>
<div class="footer-container-wrapper">
<div class="footer-container container-fluid">
<div class="row-fluid-wrapper row-depth-1 row-number-1">
<div class="row-fluid">
<div class="span12 widget-span widget-type-global_group" style="" data-widget-type="global_group" data-x="0" data-w="12">
<div class="" data-global-widget-path="generated_global_groups/">
<div class="row-fluid-wrapper row-depth-1 row-number-11">
<div class="row-fluid">
<div class="span12 widget-span widget-type-cell footer-bottom" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-1 row-number-12">
<div class="row-fluid">
<div class="span12 widget-span widget-type-cell wrapper" style="" data-widget-type="cell" data-x="0" data-w="12">
<div class="row-fluid-wrapper row-depth-1 row-number-13">
<div class="row-fluid">
<div class="span6 widget-span widget-type-simple_menu footer-menuB text-bold" style="" data-widget-type="simple_menu" data-x="6" data-w="6"><!--end layout-widget-wrapper -->
</div>
<!--end widget-span -->
</div>
<!--end row-->
</div>
<!--end row-wrapper -->

</div>
<!--end widget-span -->
</div>
<!--end row-->
</div>
<!--end row-wrapper -->

</div>
<!--end widget-span -->
</div>
<!--end row-->
</div>
<!--end row-wrapper -->

<div class="row-fluid-wrapper row-depth-1 row-number-14">
<div class="row-fluid">
<div class="span12 widget-span widget-type-text back-to-top" style="" data-widget-type="text" data-x="0" data-w="12">
<div class="cell-wrapper layout-widget-wrapper">
<span id="hs_cos_wrapper_module_1491559244913779" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_text" style="" data-hs-cos-general-type="widget" data-hs-cos-type="text"><i class="fa fa-angle-double-up" aria-hidden="true"></i></span></div>
<!--end layout-widget-wrapper -->
</div>
<!--end widget-span -->
</div>
<!--end row-->
</div>
<!--end row-wrapper -->
</div>

</div>
<!--end widget-span -->
</div>
<!--end row-->
</div>
<!--end row-wrapper -->

    </div>
<!--end footer -->
</div>
<!--end footer wrapper -->

    
<!-- HubSpot performance collection script -->















    <!--[if lte IE 8]>
    
    <![endif]-->



  




<!-- Start of HubSpot Analytics Code -->



<!-- End of HubSpot Analytics Code -->







<!-- Google Tag Manager (noscript) -->
<noscript><iframe src=" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>

<!-- End Google Tag Manager (noscript) -->













    


    <!-- Generated by the HubSpot Template Builder - template version  -->

</body>
</html>