【发布时间】:2020-03-01 23:31:57
【问题描述】:
用例是在给定列中找到最多 n 行(这些可以是 n 列),一旦你有了 n 个键,你就可以将它加入到原始数据集中以获取你需要的所有行
val df = Seq(("12", "Tom", "Hanks"), (“13”,“梅丽尔”,“斯特里普”), (“12”,“汤姆”,“哈代”), (“12”、“约翰”、“斯特里普”) ).toDF("年龄", "名字", "姓氏")
假设我想将每一列单独加入一个更大的演员数据集,该数据集包含上述所有三列。
val v1 = actors.join(df, Seq("id"), "inner")
val v2 =actors.join(df, Seq("firstname"), "inner")
val v3 =actors.join(df, Seq("lastname"), "inner")
val output = v1.union(v2).union(v3)
有什么方法可以不重复执行此操作吗?还因为要连接的列可以是动态的。例如,有时它只能是 id,或者只能是 id 和名字。
【问题讨论】:
-
在以下 2 个答案中阅读我的 cmets
标签: scala dataframe apache-spark apache-spark-sql