如何将字符串类型的列转换为pyspark数据框中的int形式?

新手上路,请多包涵

我在 pyspark 中有数据框。它的一些数字列包含 nan 所以当我读取数据并检查数据帧的模式时,这些列将具有 string 类型。

我如何将它们更改为 int 类型。我用 0 替换了 nan 值并再次检查了架构,但随后它也显示了这些列的字符串类型。我遵循以下代码:

 data_df = sqlContext.read.format("csv").load('data.csv',header=True, inferSchema="true")
data_df.printSchema()
data_df = data_df.fillna(0)
data_df.printSchema()

我的数据是这样的: 在此处输入图像描述

这里的列 Playsdrafts 包含整数值,但由于 nan 出现在这些列中,它们被视为字符串类型

原文由 neha 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 414
1 个回答
from pyspark.sql.types import IntegerType
data_df = data_df.withColumn("Plays", data_df["Plays"].cast(IntegerType()))
data_df = data_df.withColumn("drafts", data_df["drafts"].cast(IntegerType()))

您可以为每一列运行循环,但这是将字符串列转换为整数的最简单方法。

原文由 Sahil Desai 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题