星火:合并两个dataframes
问题描述:
解释我的问题用一个例子..星火:合并两个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列的表(没有主键),我不得不改变这三列中第二列的数据,现在我想用这个新的第二列替换旧列。
df1 = hc.sql("select col1 from table_name")
df2 = hc.sql("select col2 from table_name")
df3 = hc.sql("select col3 from table_name")
有什么办法可以做到这一点?
由于还有就是我觉得这没有主键是一个办法:
我可以为dataframes添加row_numbers(行号会托特他据帧新列),并可以加入对ROW_NUMBER所有dataframes。 - 这里的问题是,当我“从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现有的数据框添加列。 您定义了将您的column2转换为新列的udf。 你能描述一下你想要做的转换吗? 所以在你的情况下:
table 1 = table1.withColumn("newCol2", udf(col2))