水平堆叠 Spark 数据帧 - 相当于 pandas concat 或 r cbind

jav*_*dba 7 dataframe apache-spark

有没有办法将一个dataframe水平附加到另一个 - 假设两者具有相同的行数?

这相当于pandas concatby axis=1;

result = pd.concat([df1, df4], axis=1) 
Run Code Online (Sandbox Code Playgroud)

或者R cbind

小智 8

不会有一个。与 Pandas 不同DataFrame,SparkDataFrame更多的是一种关系,并且没有固有的顺序。

有一种已知的模式,您可以将数据转换为RDDzipWithIndexPySpark DataFrames - 枚举而不转换为 Pandas 的方式?),然后join使用索引字段,但它最终是一种反模式*。


* 如果我们不明确保证特定的顺序(谁知道所有新的花哨的东西,如基于成本的优化器和自定义优化器规则),那么它很容易变得脆弱,并以某种意想不到的方式默默地失败。