【发布时间】:2019-08-15 21:35:08
【问题描述】:
我正在尝试使用 pySpark 加载 .gz 文件,但出现此错误。 我的python代码是:
schema_daily = StructType([
StructField("id", StringType(), True),
StructField("date", DataType(), True),
StructField("element", StringType(), True),
StructField("value", DoubleType(), True),
StructField("measurement flag", StringType(), True),
StructField("quality flag", StringType(), True),
StructField("source flag", StringType(), True),
StructField("observation time", TimestampType(), True),
])
daily = (
spark.read.format("com.databricks.spark.csv")
.option("header", "false")
.option("inferSchema", "false")
.schema(schema_daily)
.load("hdfs:///data/ghcnd/daily/1763.csv.gz")
)
daily.cache()
daily.show()
文件存储为:
-rwxr-xr-x 8 hadoop supergroup 196551118 2019-03-17 21:26 /data/ghcnd/daily/2013.csv.gz
-rwxr-xr-x 8 hadoop supergroup 193121272 2019-03-17 21:26 /data/ghcnd/daily/2014.csv.gz
-rwxr-xr-x 8 hadoop supergroup 196007583 2019-03-17 21:26 /data/ghcnd/daily/2015.csv.gz
-rwxr-xr-x 8 hadoop supergroup 194390036 2019-03-17 21:27 /data/ghcnd/daily/2016.csv.gz
-rwxr-xr-x 8 hadoop supergroup 125257391 2019-03-17 21:27 /data/ghcnd/daily/2017.csv.gz
貌似是报JSON字符串转数据类型失败,不知道是不是和文件类型有关?
完整的错误:
Py4JJavaError: An error occurred while calling o31.parseDataType.
: java.lang.IllegalArgumentException: Failed to convert the JSON string 'data' to a data type.
at org.apache.spark.sql.types.DataType$$anonfun$nameToType$1.apply(DataType.scala:142)
at org.apache.spark.sql.types.DataType$$anonfun$nameToType$1.apply(DataType.scala:142)
【问题讨论】:
标签: pyspark pyspark-sql