【问题标题】:Pyspark SQL Replace Element With NULLPyspark SQL 用 NULL 替换元素
【发布时间】:2020-09-05 16:40:22
【问题描述】:

我正在尝试编写一个 sql 查询以在 pyspark 中使用以清除 pyspark df 中的信息。我要修改的 df 如下所示:

  hashed_customer     firstname    lastname    email   order_id    status          timestamp
      eater 1_uuid  1_firstname  1_lastname  1_email    12345    OPTED_IN     2020-05-14 20:45:15
      eater 2_uuid  2_firstname  2_lastname  2_email    23456    OPTED_IN     2020-05-14 20:29:22
      eater 3_uuid  3_firstname  3_lastname  3_email    34567    OPTED_IN     2020-05-14 19:31:55
      eater 4_uuid  4_firstname  4_lastname  4_email    45678    OPTED_IN     2020-05-14 17:49:27

我需要从 customer_temp_tb 表中删除的客户的另一个 pyspark df 如下所示:

hashed_customer    eaterstatus
   eater 1_uuid      OPTED_OUT
   eater 3_uuid      OPTED_OUT

我正在尝试编写一个 SQL 查询以在 pyspark 中使用,如果客户在第二个表中,它将从第一个表中删除名字、姓氏和电子邮件。有点像:

UPDATE customer_temp_tb
SET firstname="", lastname="", email=""
WHERE hashed_eater_uuid IN
(SELECT hashed_eater_uuid FROM opt_out_temp_tb)

所以最终结果看起来像:

hashed_customer     firstname    lastname    email   order_id    status          timestamp
   eater 1_uuid           NaN         NaN      NaN    12345    OPTED_IN     2020-05-14 20:45:15
   eater 2_uuid   2_firstname  2_lastname  2_email    23456    OPTED_IN     2020-05-14 20:29:22
   eater 3_uuid           NaN         NaN      NaN    34567    OPTED_IN     2020-05-14 19:31:55
   eater 4_uuid   4_firstname  4_lastname  4_email    45678    OPTED_IN     2020-05-14 17:49:27

我似乎遇到的问题是 pyspark 不支持 UPDATE。还有其他选择吗?

【问题讨论】:

  • 用您正在使用的数据库标记您的问题。在您的操作之后显示结果。目前尚不清楚您是要删除行还是覆盖列。

标签: sql database replace pyspark sql-delete


【解决方案1】:

我认为,您可以将列更新为 null 或 string empty "" 而不是 delete 。

【讨论】:

  • 我试图在 pyspark 中使用 UPDATE 查询这样做,但我收到 ParseException: '\nmismatched input \'UPDATE\' expecting ... 错误
  • 我认为您在查询中使用了 \ 语法。试试这个:
  • spark.sql("""SELECT column1, Column2 FROM table1 WHERE column1
  • 本文展示了如何将列值替换为新值,如更新。也许你可以这样。删除操作后,将 NaN 值替换为新值或字符串 empty/null 。这是文章:dwgeek.com/…
猜你喜欢
  • 2018-12-02
  • 2017-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-09
  • 1970-01-01
相关资源
最近更新 更多