【发布时间】:2021-06-19 02:57:56
【问题描述】:
我的数据集有一列名为“eventAction”。
它具有“conversion”、“purchase”、“check-out”等值。我想将此列转换为将转换映射到 1 并将所有其他类别映射到 0。
我是这样使用 lambda 函数的:
e1 = event1.rdd.map(lambda x: 1 if x.eventAction == 'conversion' else 0)
其中 event1 是我的 spark 数据框的名称。
当打印 e1 时,我明白了:
print(e1.take(5))
[0, 0, 0, 0, 0]
所以我认为 lambda 函数工作正常。现在,当我转换为 pyspark 数据框时,我得到如下所示的空值:
schema1 = StructType([StructField('conversion',IntegerType(),True)])
df = spark.createDataFrame(data=[e1],schema=schema1)
df.printSchema()
df.show()
如果你能帮助我,那就太好了。
谢谢!
【问题讨论】:
标签: python apache-spark pyspark apache-spark-sql rdd