将模式推断为 DataFrame pyspark

问题描述

我见过许多针对 Scala 或其他类型文件解决方案。但是如何使用 pyspark 在 python 中将架构推断为加载 DataFrame,一个 csv 文件

df = spark.read.csv('dataset.csv')

如果我检查架构,所有列都是字符串。我可以逐列更改,但我认为有更好的方法

解决方法

我找到了。我把它留在这里以防有人有同样的疑问。有写专栏的地方,你应该写专栏的名字。

schema = StructType([
    StructField("column1",FloatType(),nullable=True),StructField("column2",StructField("column3",IntegerType(),StructField("column4",DoubleType(),)

最快的方法是inferSchema并设置列类型。我认为它会出错,创建DataFrame后检查

df = spark.read.csv('dataset.csv',inferSchema = True)