Spark SQL Pyspark将表中的值更新为表中的另一个值

时间:2017-02-16 05:25:53

标签: pyspark spark-dataframe pyspark-sql

我有一个可以用SQL查询的表。有两列,一列叫做Actor1Type1,另一列叫做Actor2Type1。如果列Actor1Type1中的单元格是''并且Actor2Type1不是'',那么我想将该单元格的值更改为Actor2Type1的值。我不知道如何使用Spark SQL执行此操作,因为我是新手。

到目前为止我已经

sqlContext.registerDataFrameAsTable(df, 'temp')
new_df = sqlContext.sql("""SELECT CASE WHEN temp.Actor1Type1Code == '' AND temp.Actor2Type1Code != ''
                    THEN temp.Actor1Type1Code""")

1 个答案:

答案 0 :(得分:2)

如果我理解正确,你想在Actor1Type1 == '' AND Actor2Type1 != ''

时将Actor2Type1的值分配给Actor1Type1

这是你如何做到的,

df2 = sqlContext.sql('select (case when Actor1Type1 == '' AND Actor2Type1 != '' then Actor2Type1 else Actor1Type1 end) as Actor1Type1,Actor2Type1 from temp')