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 中的“管道”功能?

遍历 pyspark 数据框列

我在 pandas 中设置了我的数据类型,但是在转换为 pyspark 时,所有数据都转到了字符串

pyspark pandas 对象作为数据框 - TypeError