【问题标题】:Scala - Join dataframes relation 1 to nScala - 将数据帧关系 1 连接到 n
【发布时间】:2020-08-19 20:18:34
【问题描述】:

我有两个数据框

数据框 - 房屋(地址、号码、邮政编码)

adress 1, 28, 04030
adress 2, 01, 25040

数据框 - 人物(姓名、地址、年龄)

Miki , adress 1, 15
Sterling , adress 2, 20
Archer, adress 2, 25

我需要将它们都加入第三个数据框 - Filled_HouseHouse(adress, number, zipcode, member1, member2, member3, member4) like

 adress 1, 28, 04030, Miki, null, null, null
 adress 2, 01, 25040, Sterling, Archer, null, null

Scala+Spark 中,我相信使用 map 和 group by 可能是答案,但我没有找到正确的出路。

感谢您的宝贵时间!

【问题讨论】:

  • 欢迎来到 Stackoverflow!对于这样的问题(可能是家庭作业?),很高兴看到已经付出了一些努力来解决它。请显示您到目前为止的代码,并说明您卡在哪一步。
  • 感谢您的快速回复。到目前为止,我没有失败的代码。我只有不同的方法。主要的是 'val peopleGrouped = people.groupBy("adress")' 'peopleGrouped.foreach { row =>' 并在新数据框中选择位置。这里我有问题。

标签: sql scala dataframe apache-spark one-to-many


【解决方案1】:

使用

val peopleUnified = people.groupBy("address").agg(collect_list("name")

我明白了

adress 1, Miki
adress 2, [Sterling, Archer]

所以下一步是拆分创建的列表并使用连接填充成员字段

【讨论】:

    猜你喜欢
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    相关资源
    最近更新 更多