繁体   English   中英

Spark:合并两个数据框

[英]Spark: merge two dataframes

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

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")

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

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

我可以为数据框添加row_numbers(行号将是该数据框的新列),并且可以将row_number上的所有数据框加入。 -这里的问题是,当我“从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

您可以使用withColumn将列添加到现有数据框。 您定义udf,它将把column2转换为新列。 您能描述您要进行的转换吗? 因此,在您的情况下:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM