相关疑难解决方法(0)

PySpark:withColumn()有两个条件和三个结果

我正在使用Spark和PySpark.我试图实现相当于以下伪代码的结果:

df = df.withColumn('new_column', 
    IF fruit1 == fruit2 THEN 1, ELSE 0. IF fruit1 IS NULL OR fruit2 IS NULL 3.)
Run Code Online (Sandbox Code Playgroud)

我试图在PySpark中这样做,但我不确定语法.有什么指针吗?我调查expr()但无法让它工作.

请注意,这df是一个pyspark.sql.dataframe.DataFrame.

hive hiveql apache-spark apache-spark-sql pyspark

29
推荐指数
3
解决办法
9万
查看次数

Spark替换EXISTS和IN

我试图运行使用EXIST子句的查询:

select <...>    
  from A, B, C
where
  A.FK_1 = B.PK and
  A.FK_2 = C.PK and
  exists (select A.ID from <subquery 1>) or 
  exists (select A.ID from <subquery 2>) 
Run Code Online (Sandbox Code Playgroud)

不幸的是,这似乎不受支持.我也尝试用EXISTS一个IN子句替换该子句:

select <...>    
  from A, B, C
where
  A.FK_1 = B.PK and
  A.FK_2 = C.PK and
  A.ID in (select ID from ...) or
  A.ID in (select ID from ...)
Run Code Online (Sandbox Code Playgroud)

不幸的是,该IN条款似乎也没有得到支持.

有关如何编写实现所需结果的SQL查询的任何想法?我原则上可以将该WHERE条款建模为另一个条款,JOIN而第二个OR条款则可以模拟,UNION但它看起来非常笨拙.

编辑:列出一些可能的解决方案.

解决方案1

select <...>    
  from A, …
Run Code Online (Sandbox Code Playgroud)

sql apache-spark-sql

10
推荐指数
1
解决办法
2万
查看次数

标签 统计

apache-spark-sql ×2

apache-spark ×1

hive ×1

hiveql ×1

pyspark ×1

sql ×1