我正在尝试将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
函数的文档可在此处找到。