SparkR: как сделать ИНДЕКС-МАТЧ / ВПР

ИНДЕКС МАТЧ / ВПР В СПАРКР

Я пытаюсь найти соответствие индекса / vlookup в Rstudio с пакетом SparkR, кто-нибудь уже делал это раньше? Я пытаюсь использовать функцию locate для доступа к тому же методу с функцией match в обычном RStudio, но я получаю сообщение, которое не может найти с двумя столбцами, поэтому я выполнил цикл, но также не сработал. Кто-нибудь знает об этом?

iUWYData <- SparkR::nrow(UWYData)

for(i in iUWYData){
UWYData[i,2] = LoBUWY_Data[SparkR::locate(UWYData[i,1], LoBUWY_Data$ICRF_ID),"Version"]

}

OR

UWYData$Version = LoBUWY_Data[SparkR::locate(UWYData$ICRF_ID, LoBUWY_Data$ICRF_ID),"Version"]

Но я получаю такие сообщения:

Ошибка в UWYData [i, 1]: выражения, отличные от предикатов фильтрации, не поддерживаются в первом параметре метода extract operator [или subset (). трассировка: eval (parse (text = code), envir = envir) test (Premium_rate_Index_script_v1 = Premium_rate_Index_script_v1) LoBUWY_Data [SparkR :: locate (UWYData [i, 1], LoBUWY_Data $ ICRFBata_IDU (версия) [i, 1], LoBUWY_Data $ ICRF_ID), Version] SparkR :: locate (UWYData [i, 1], LoBUWY_Data $ ICRF_ID) UWYData [i, 1] UWYData [i, 1] stop (paste0 (Выражения, отличные от предикатов фильтрации не поддерживаются в первом параметре оператора извлечения [или метода subset ().))

И

Ошибка в (function (classes, fdef, mtable): невозможно найти унаследованный метод для функции «locate» для сигнатуры «Column, Column»

трассировка: eval (parse (text = code), envir = envir) test (Premium_rate_Index_script_v1 = Premium_rate_Index_script_v1) LoBUWY_Data [SparkR :: locate (UWYData $ ICRF_ID, LoBUWY_Data $ ICRFata_IDU [версия] LoBUWY_Data $ ICRF_ID), версия] SparkR :: locate (UWYData $ ICRF_ID, LoBUWY_Data $ ICRF_ID) (функция (классы, fdef, mtable)


person Will C    schedule 09.11.2020    source источник


Ответы (1)


Используйте 1_.

UWYData <- SparkR::createDataFrame(data.frame(
  id = 1:5
))
LoBUWY_Data <- SparkR::createDataFrame(data.frame(
  ICRF_ID = 1:4,
  Version = 11:14
))
result <- SparkR::join(
  UWYData,
  LoBUWY_Data,
  UWYData$id == LoBUWY_Data$ICRF_ID,
  joinType = "left_outer"
)

SparkR::collect(result)
#>   id ICRF_ID Version
#> 1  1       1      11
#> 2  3       3      13
#> 3  5      NA      NA
#> 4  4       4      14
#> 5  2       2      12
person Paul    schedule 10.11.2020