【发布时间】:2019-05-04 09:32:04
【问题描述】:
我有一个包含数百万行的巨大数据框。从这些行中,我得到了新的 k 数据框,它只有 1 行和 1 列。
将这些 k 数据帧连接在一起以便现在获得一个具有 1 行和 k 列的数据帧 1 x k 的好方法是什么。
-
过去,我开始在所有
k数据帧中使用 crossJoin,例如df1.crossJoin(df2).crossJoin(df3).crossJoin(dfk)这导致了广播超时错误,
-
后来我转向了我认为更智能的解决方案。
df1.withColumn("temp_id", lit(0)).join(df2.withColumn("temp_id", lit(0)), "temp_id").drop("temp_id").这导致了一个奇怪但类似的广播超时错误。
我真正想要的结果是一个新的 DataFrame,它有 1 行和 k 列,在 numpy/pandas 语言中可能是
pandas.concat(..., axis=1)
或者
np.vstack(.....)
【问题讨论】:
-
pd.concat 是我的猜测,但没有任何数据很难确定最佳方法。
-
请记住,pandas 和 spark 的主要区别在于最后一个是分布式系统,您提到的错误可能是大洗牌的结果。请提供如下所示的完整描述:stackoverflow.com/questions/48427185/…
标签: apache-spark pyspark apache-spark-sql databricks