【问题标题】:Spark: merge two dataframesSpark:合并两个数据框
【发布时间】:2017-10-09 13:59:13
【问题描述】:

用一个例子解释我的问题..

table_name

col1 col2 col3
1     aaa  xxx
1     bba  yyy
2     ccc  yyy

我希望我的最终输出是这样的:

table_name

col1 col2 col3
1     aab  xxx
1     bbc  yyy
2     cc   yyy

我有一个包含 3 列的表(没有主键),我必须更改这 3 列中第二列中的数据,现在我想用这个新的第二列替换旧列。

df1 = hc.sql("select col1 from table_name")
df2 = hc.sql("select col2 from table_name")
df3 = hc.sql("select col3 from table_name")

有什么方法可以做到这一点?

由于没有主键,我觉得这是一种方式:

我可以为数据帧添加行号(行号将是数据帧的新列),并且可以加入行号上的所有数据帧。 - 这里的问题是,当我“从 table_name 中选择 col1”和“从 table_name 中选择 col2”时,不能保证在第一个和第二个查询中我将以相同的顺序获取行..(如果我错了)

为了简单起见,我只想在 pyspark 中执行以下操作:

table1

col_1
a
b
c

table2

col_2
d
e
f

into---

table_1_2

col1 col2
a    d
b    e
c    f

【问题讨论】:

    标签: apache-spark dataframe pyspark


    【解决方案1】:

    您可以使用 withColumn 将列添加到现有数据框。 您定义将您的 column2 转换为新列的 udf。 你能描述一下你想做的转变吗? 所以在你的情况下:

    table 1 = table1.withColumn("newCol2", udf(col2))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-08
      • 2017-08-15
      • 2018-10-19
      • 2019-07-26
      • 2015-10-17
      • 2014-10-04
      相关资源
      最近更新 更多