Spark:数据框中的嵌套数据结构Flatten

时间:2017-03-02 12:26:53

标签: scala apache-spark apache-spark-sql spark-dataframe

我需要展平数据框,以便将其与Spark(Scala)中的另一个数据框连接起来。

基本上我的2个数据帧有以下模式:

DF1

root
|-- field1: string (nullable = true)
|-- field2: long (nullable = true)
|-- field3: long (nullable = true)
|-- field4: long (nullable = true)
|-- field5: integer (nullable = true)
|-- field6: timestamp (nullable = true)
|-- field7: long (nullable = true)
|-- field8: long (nullable = true)
|-- field9: long (nullable = true)
|-- field10: integer (nullable = true)

DF2

root
|-- field1: long (nullable = true)
|-- field2: long (nullable = true)
|-- field3: string (nullable = true)
|-- field4: integer (nullable = true)
|-- field5: array (nullable = true)
|    |-- element: struct (containsNull = true)
|    |    |-- field6: long (nullable = true)
|    |    |-- field7: integer (nullable = true)
|    |    |-- field8: array (nullable = true)
|    |    |    |-- element: struct (containsNull = true)
|    |    |    |    |-- field9: string (nullable = true)
|    |    |    |    |-- field10: integer (nullable = true)
|-- field11: timestamp (nullable = true)

老实说,我不知道如何压扁DF2。最后,我需要在DF.field4 = DF2.field9

上加入2个数据帧

我使用的是2.1.0

我的第一个想法是使用爆炸但在Spark 2.1.0中已经弃用了吗?有没有人对我有任何线索?

1 个答案:

答案 0 :(得分:1)

我的错误爆炸功能仍然可以在org.apache.spark.sql包中的functions.explode下的Spark 2.1.0中找到

由于

您可以在下面找到以下代码:

c