在读取pyspark数据帧时使用转换器



我正在尝试将csv文件读取到pyspark数据帧中。我想根据一个简单的逻辑将一个特定的字符串字段转换为一个整数。

当用熊猫阅读时,这可以简单地用转换器完成

在大熊猫中,如果状态为"已获取",则可以这样做。将转换为1其他0

dataset=pd.read_csv("../input/startup-success-prediction/startup data.csv",
converters={'status': lambda x: int(x == 'acquired')})

如何在读取pyspark数据帧时做到这一点。

df=spark.read.csv("../input/startup-success-prediction/startup data.csv")

我想在pyspark 中添加相同类型的转换器

虽然Spark API在spark.read.csv函数中不提供该功能(可以在此处找到CSV读/写的当前选项(,但可以在使用otherwise:的when函数读取数据后执行列转换

from pyspark.sql.functions import when
df = spark.read.csv("../input/startup-success-prediction/startup data.csv")
df = df.withColumn('status', when(df['status'] == 'acquired', True).otherwise(False))

when函数的文档可在此处找到。

最新更新