Как я могу отфильтровать набор данных в новый набор данных по карте? - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть DataFrame и массив

Вход:

1. an array,array's length is uncertain.
array[eason,wency,kobe...]

2. dataframe like this:
    name   grade   
    eason    90
    evan     80
    wency    70
    elton    50  
    frank    90
    ...      ..
    kobe     90

вывод: в соответствии с элементами фильтра массива входные данные для этого кадра данных:

name   grade
eason   90
wency   70
kobe    90
...     ..

как я могу получить новый фрейм данных по карте или другим API-интерфейсам spark?Пожалуйста, любая идея.

1 Ответ

0 голосов
/ 29 ноября 2018

Вы можете построить Spark DataFrame из массива, как показано ниже:

scala> val arr = Array("eason", "wency", "elton", "kobe")
arr: Array[String] = Array(eason, wency, elton, kobe)
scala> val df = sc.parallelize(arr).toDF("name")
df: org.apache.spark.sql.DataFrame = [name: string]
scala> df.show()
+-----+
|name|
+-----+
|eason|
|wency|
|elton|
| kobe|
+-----+

Как только DataFrame создан из Array, вы можете объединить 2 DataFrames, используя поле общего имени.

OtherФрейм данных:

scala> otherDF.show()
+-----+-----+
| name|grade|
+-----+-----+
|eason|   90|
| evan|   80|
|wency|   70|
|elton|   50|
|frank|   90|
| kobe|   90|
+-----+-----+

Соединение двух фреймов данных с использованием поля имени:

scala> val joinedDF = otherDF.join(df, "name")
joinedDF: org.apache.spark.sql.DataFrame = [name: string, grade: int]

scala>

scala> joinedDF.show()
+-----+-----+
| name|grade|
+-----+-----+
|eason|   90|
|wency|   70|
|elton|   50|
| kobe|   90|
+-----+-----+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...