【问题标题】:How to create a PySpark DataFrame from 2 columns of 2 DataFrames?如何从 2 个 DataFrame 的 2 列创建 PySpark DataFrame?
【发布时间】:2021-08-11 20:35:29
【问题描述】:

我有以下 2 个 PySpark DataFrame,它们的行数相同(比如 100 行):

df1:
 |_ Column_a
 |_ Column_b

df2:
 |_ Column_c
 |_ Column_d

如何创建具有 100 行和以下列的 df_final?:

df_final:
 |_ Column_a
 |_ Column_b
 |_ Column_c
 |_ Column_d

我查看了 concat()、join()、union(),但我认为不对。

【问题讨论】:

  • 你需要一个公共字段才能加入他们

标签: python pyspark


【解决方案1】:

试试zip

>>> df1.show()
+---+---+
|  a|  b|
+---+---+
|  2|  3|
|  4|  5|
+---+---+

>>> df2.show()
+---+---+
|  c|  d|
+---+---+
| 20| 30|
| 40| 50|
+---+---+

>>> df1.rdd.zip(df2.rdd).map(lambda x: (x[0][0],x[0][1],x[1][0],x[1][1])).toDF(['a','b','c','d']).show()
+---+---+---+---+
|  a|  b|  c|  d|
+---+---+---+---+
|  2|  3| 20| 30|
|  4|  5| 40| 50|
+---+---+---+---+

【讨论】:

  • 这行得通,谢谢!我不太了解映射部分。但是通过反复试验,我能够将我的 df1(3 列)和 df2(3 列)与map(lambda x: (x[0][0],x[0][1],x[0][2],x[1][0],x[1][1],x[1][2])) 连接起来。分享以防模式对其他人有帮助。
猜你喜欢
  • 2017-08-19
  • 1970-01-01
  • 2018-07-01
  • 2023-03-10
  • 1970-01-01
  • 2018-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多