我是Spark和Scala的新手,即使阅读了各种文档,我仍然找不到解决问题的最佳方法。
我有一个相当大的数据集(〜TB),可以按如下方式加载到数据框中:
[1百万行
列为time
,data
,Info1
,Info2
。
time
是浮点数,其他所有都是大小为〜200K的浮点数数组。
[Info1
和Info2
对于所有行都是相同的。
看来数据帧/数据集无法访问共享变量(例如广播变量)。
行可以是案例类,但在Spark中不能包含静态变量/同伴对象。
行不能是常规类。
[唯一的出路似乎在所有列中都具有相同的冗余,info1
和info2
是相同的,但是在诸如此类的情况下似乎非常昂贵。
使用crossJoin
可能会花费过多的通信成本。
对于在Spark中表示数据的任何输入,我将不胜感激。
TIA。
以下是最简单的解决方案之一,其中添加了带有常数的新列:
val arr = Array(12.223F, 12.1F, 213.21F)
val df1 = df2.withColumn("info", lit(arr))