Pyspark 相当于 pandas 的所有功能
Posted
技术标签:
【中文标题】Pyspark 相当于 pandas 的所有功能【英文标题】:Pyspark equivalent of pandas all fuction 【发布时间】:2020-12-16 13:13:58 【问题描述】:我有一个 spark 数据框 df:
A B C D
True True True True
True False True True
True None True None
True NaN NaN False
True NaN True True
在 pyspark 中有没有办法根据行 A、B、C、D 获得第五列,其中没有值 False,但返回一个 int 值或 1 表示 True,0 表示 false。因此:
A B C D E
True True True True 1
True False True True 0
True None True None 1
True NaN NaN False 0
True NaN True True 1
这可以通过函数 df.all().astype(int)
在 pandas 数据帧中实现。
对于 pyspark 等价物的任何帮助将不胜感激。
【问题讨论】:
布尔列不能在 spark 中包含 NaN。你能发布一个创建你的数据框的示例代码吗? 感谢您的评论。数据框值都是假的。假设所有 None 和 NaN 值都为真,您能否提出一个解决方案?非常感谢 这本质上是***.com/a/63634987/5858851 的副本——只需使用reduce 中的所有列。df.withColumn("E", reduce(or_, [col(c) for c in df.columns]).cast('int'))
【参考方案1】:
我没有要测试的东西,但试试下面的代码:
df2 = df.withColumn(
'E',
(
(F.greatest(*df.columns) == F.least(*df.columns)) &
(F.least(*df.columns) == F.lit(True))
).cast('int')
)
【讨论】:
以上是关于Pyspark 相当于 pandas 的所有功能的主要内容,如果未能解决你的问题,请参考以下文章
pyspark 相当于 pandas groupby('col1').col2.head()
spark Dataframe/RDD 相当于描述中给出的 pandas 命令?
PySpark DataFrames 是不是具有像 Pandas 中的“管道”功能?