如何通过地图将数据集过滤到新数据集?

时间:2018-11-29 12:25:51

标签: dataframe dataset

我有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
...     ..

如何通过地图或其他Spark API获取新的数据框? 请提出任何想法。

1 个答案:

答案 0 :(得分:1)

您可以从数组中构造Spark DataFrame,如下所示:

BodyHandlers.ofPublisher()

一旦从数组构造了DataFrame,就可以使用通用名称字段将2个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|
+-----+

使用名称字段连接两个数据框:

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