【发布时间】:2021-11-21 01:35:22
【问题描述】:
我来自 python 背景,试图将一个函数转换为 scala。
在这个虚拟示例中,我需要将多个(未知数量)数据帧合并在一起。
%python
list_of_dfs = [
spark.createDataFrame(
[('A', 'C'),
('B', 'E')
], ['dummy1','dummy2']),
spark.createDataFrame(
[('F', 'G'),
('H', 'I')
], ['dummy1','dummy2'])]
for i, df in enumerate(list_of_dfs):
if i == 0:
union_df = df
else:
union_df = union_df.unionAll(df)
union_df.display()
按我想要的方式工作。 “union_df = union_df.unionAll(df)”是我在 scala 中重现时遇到的问题。
%scala
... outer loop creates each iterations dataframe
if(i==0) {
val union_df=df
} else{
val union_df=union_df.union(df)
}
我得到这个“错误:递归值 union_df 需要类型”。我无法将文档翻译成我的解决方案,因为类型是数据框。显然我需要真正学习一些关于 scala 的知识,但这是我现在想要跨越的桥梁。感谢任何帮助。
【问题讨论】:
标签: scala dataframe apache-spark apache-spark-sql