我有以下Apache Spark数据框:
父母-孩子A1-A10A1-A2A2-A3A3-A4A5-A7A7-A6A8-A9
此DataFrame显示父级和子级之间的连接。逻辑上看起来像这样:
主要目标是为每个孩子设置主要根。这意味着我们应该具有以下数据框:
父母-孩子A1-A10A1-A2A1-A3A1-A4A5-A7A5-A6A8-A9
一切都应该使用Apache Spark来实现。
val input_rdd = spark.sparkContext.parallelize(List(("A1", "A10"), ("A1", "A2"), ("A2", "A3"), ("A3", "A4"), ("A5", "A7"), ("A7", "A6"), ("A8", "A9"), ("A4", "A11"), ("A11", "A12"), ("A6", "A13")))
val input_df = input_rdd.toDF("Parent", "Child")
input_df.createOrReplaceTempView("TABLE1")
input_df.show()
+------+-----+
|Parent|Child|
+------+-----+
| A1| A10|
| A1| A2|
| A2| A3|
| A3| A4|
| A5| A7|
| A7| A6|
| A8| A9|
| A4| A11|
| A11| A12|
| A6| A13|
+------+-----+
output_df1.createOrReplaceTempView("TEMP1")
output_df2.createOrReplaceTempView("TEMP2")
+------+-----+
|parent|child|
+------+-----+
| A1| A10|
| A1| A11|
| A1| A2|
| A1| A3|
| A1| A4|
| A11| A12|
| A5| A13|
| A5| A6|
| A5| A7|
| A8| A9|
+------+-----+
我希望这会有所帮助!