【发布时间】:2021-04-26 09:53:05
【问题描述】:
我需要为我的数据框创建 2 个额外的列,这些列基于涉及一列与自身除以另一列的条件的计算。
我有一个使用 SQL 转换的工作示例,但需要在 pyspark equvilent 中重写它并且无法正确处理。到目前为止我所拥有的:
%python
data = [("AUD", 7.1), ("EUR", 11.2), ("USD", 9.1)]
cols = ["Currency", "RateSEK"]
df = spark.createDataFrame(data, cols)
df.show()
+--------+-------+
|Currency|RateSEK|
+--------+-------+
| AUD| 7.1|
| EUR| 11.2|
| USD| 9.1|
+--------+-------+
df.createOrReplaceTempView("tempdf")
以上是我目前在 pyspark 中的内容。 下面是我想用pyspark实现的SQL代码:
%sql
SELECT
*,
RateSEK / (SELECT RateSEK FROM tempdf WHERE Currency = 'EUR') AS RateEur,
RateSEK / (SELECT RateSEK FROM tempdf WHERE Currency = 'USD') AS RateUSD
FROM
tempdf
【问题讨论】:
标签: python apache-spark pyspark apache-spark-sql