2022-03-03 Spark 读取csv 全为NULL

#读取数据

talrat = spark.read.csv("/data/talrat0225.csv",header=True,

                    enforceSchema=True,

                    sep=',',

                    encoding='gb18030',

                      )

此时 读取出的talrat全为 string 类型,且增加schema=schema 属性

from pyspark.sql.types import *

#构建结构对象

schema = StructType([

    StructField("userid",LongType(),True),

    StructField("bookid",LongType(),True),

    StructField("title",StringType(),True),

    StructField("auther",StringType(),True),

    StructField("publish",StringType(),True),

    StructField("publishday",LongType(),True),

    StructField("language",IntegerType(),True),

    StructField("Lpublishlocal",StringType(),True),

    StructField("categorylit",StringType(),True),

    StructField("sex",IntegerType(),True),

    StructField("Class",IntegerType(),True),

    StructField("unit",IntegerType(),True),

    StructField("size",IntegerType(),True)

])

结果列名仍为string

无法进行相关操作。

解决办法

增加 inferSchema=True 属性

talrat = spark.read.csv("/data/talrat0225.csv",header=True,

                    enforceSchema=True,

                    sep=',',

                    encoding='gb18030',

                    inferSchema=True

                      )


此时 读取结果为:

盲猜其作用为,保持原本列属性。

你可能感兴趣的:(2022-03-03 Spark 读取csv 全为NULL)