Apache spark 粘合如何使用pyspark删除数据帧上的记录

Apache spark 粘合如何使用pyspark删除数据帧上的记录,apache-spark,pyspark,apache-spark-sql,aws-glue,Apache Spark,Pyspark,Apache Spark Sql,Aws Glue,我怀疑在pyspark中如何删除从另一个数据帧获取数据的数据帧中的记录 如下。 Pypark: 我想你想要凝聚: import pyspark.sql.functions as F result = df1.join( df2.withColumnRenamed('dt_change', 'dt_change2'), df1.columns[:2] + df1.columns[3:], 'full' ).withColumn( 'dt_change',

我怀疑在pyspark中如何删除从另一个数据帧获取数据的数据帧中的记录 如下。 Pypark:


我想你想要凝聚:

import pyspark.sql.functions as F

result = df1.join(
    df2.withColumnRenamed('dt_change', 'dt_change2'),
    df1.columns[:2] + df1.columns[3:],
    'full'
).withColumn(
    'dt_change',
    F.coalesce('dt_change', 'dt_change2')
).select(df1.columns).orderBy('id')

result.show()
+---+----------+----------+----+-------+---+-------+
| id| dt_create| dt_change|bank|account|doc|   name|
+---+----------+----------+----+-------+---+-------+
|  1|2020-12-01|2020-12-21| 001|    001|001|Michael|
|  2|2020-12-02|      null| 001|    002|002| Ismael|
|  3|2020-12-02|      null| 002|    002|003|    Ben|
|  9|2020-12-21|      null| 002|    002|003|   Mary|
+---+----------+----------+----+-------+---+-------+

我想你想要凝聚:

import pyspark.sql.functions as F

result = df1.join(
    df2.withColumnRenamed('dt_change', 'dt_change2'),
    df1.columns[:2] + df1.columns[3:],
    'full'
).withColumn(
    'dt_change',
    F.coalesce('dt_change', 'dt_change2')
).select(df1.columns).orderBy('id')

result.show()
+---+----------+----------+----+-------+---+-------+
| id| dt_create| dt_change|bank|account|doc|   name|
+---+----------+----------+----+-------+---+-------+
|  1|2020-12-01|2020-12-21| 001|    001|001|Michael|
|  2|2020-12-02|      null| 001|    002|002| Ismael|
|  3|2020-12-02|      null| 002|    002|003|    Ben|
|  9|2020-12-21|      null| 002|    002|003|   Mary|
+---+----------+----------+----+-------+---+-------+

@保罗,我看不到你的留言。请编辑问题以将错误消息放在那里。在实现后,我收到了以下消息:UnboundLocalError:在赋值之前引用了局部变量“df2”,之后是:import pyspark.sql.functions as F result=df1.join(df2.WithColumnRename('dt_change','dt_change2'),df1.columns[:2]+df1.columns[3:],'full')。withColumn('dt_change',F.coalesce('dt_change','dt_change2')。select(df1.columns)。orderBy('id'))@Paulo,这意味着未定义
df2
。请检查您的代码,确保它在我的代码之前已定义。mck先生,我创建了另一个主题,标题为Pyspark error:UnboundLocalError:local variable referenced before assignment如果您能帮助我,我将不胜感激it@Paulo我没有看到任何新问题。你能提供一个链接到您的新问题?@Paulo我看不到您的消息。请编辑该问题以将错误消息放在那里。在实现后,我收到以下消息:UnboundLocalError:在赋值之前引用的局部变量“df2”:导入pyspark.sql.functions asF result=df1.join(df2.withColumnRename('dt_change','dt_change2')、df1.columns[:2]+df1.columns[3:]、'full')。with column('dt_change',F.coalesce('dt_change','dt_change2'))。select(df1.columns)。orderBy('id'))@Paulo,这意味着未定义
df2
。请检查您的代码,确保它在我的代码之前已定义。mck先生,我创建了另一个主题,标题为Pyspark error:UnboundLocalError:local variable referenced before assignment如果您能帮助我,我将不胜感激it@Paulo我没有看到任何新问题。你能提供一个链接到你的新问题?
import pyspark.sql.functions as F

result = df1.join(
    df2.withColumnRenamed('dt_change', 'dt_change2'),
    df1.columns[:2] + df1.columns[3:],
    'full'
).withColumn(
    'dt_change',
    F.coalesce('dt_change', 'dt_change2')
).select(df1.columns).orderBy('id')

result.show()
+---+----------+----------+----+-------+---+-------+
| id| dt_create| dt_change|bank|account|doc|   name|
+---+----------+----------+----+-------+---+-------+
|  1|2020-12-01|2020-12-21| 001|    001|001|Michael|
|  2|2020-12-02|      null| 001|    002|002| Ismael|
|  3|2020-12-02|      null| 002|    002|003|    Ben|
|  9|2020-12-21|      null| 002|    002|003|   Mary|
+---+----------+----------+----+-------+---+-------+