【发布时间】:2017-07-09 03:06:48
【问题描述】:
我正在尝试从交通部读取航班数据。它存储在 CSV 中,并不断收到java.lang.NumberFormatException: null
我尝试将nanValue 设置为空字符串,因为它的默认值是NaN,但这并没有奏效。
我当前的代码是:
spark = SparkSession.builder \
.master('local') \
.appName('Flight Delay') \
.getOrCreate()
schema = StructType([
StructField('Year', IntegerType(), nullable=True),
StructField('Month', IntegerType(), nullable=True),
StructField('Day', IntegerType(), nullable=True),
StructField('Dow', IntegerType(), nullable=True),
StructField('CarrierId', StringType(), nullable=True),
StructField('Carrier', StringType(), nullable=True),
StructField('TailNum', StringType(), nullable=True),
StructField('Origin', StringType(), nullable=True),
StructField('Dest', StringType(), nullable=True),
StructField('CRSDepTime', IntegerType(), nullable=True),
StructField('DepTime', IntegerType(), nullable=True),
StructField('DepDelay', DoubleType(), nullable=True),
StructField('TaxiOut', DoubleType(), nullable=True),
StructField('TaxiIn', DoubleType(), nullable=True),
StructField('CRSArrTime', IntegerType(), nullable=True),
StructField('ArrTime', IntegerType(), nullable=True),
StructField('ArrDelay', DoubleType(), nullable=True),
StructField('Cancelled', DoubleType(), nullable=True),
StructField('CancellationCode', StringType(), nullable=True),
StructField('Diverted', DoubleType(), nullable=True),
StructField('CRSElapsedTime', DoubleType(), nullable=True),
StructField('ActualElapsedTime', DoubleType(), nullable=True),
StructField('AirTime', DoubleType(), nullable=True),
StructField('Distance', DoubleType(), nullable=True),
StructField('CarrierDelay', DoubleType(), nullable=True),
StructField('WeatherDelay', DoubleType(), nullable=True),
StructField('NASDelay', DoubleType(), nullable=True),
StructField('SecurityDelay', DoubleType(), nullable=True),
StructField('LateAircraftDelay', DoubleType(), nullable=True)
])
flts = spark.read \
.format('com.databricks.spark.csv') \
.csv('/home/william/Projects/flight-delay/data/201601.csv',
schema=schema, nanValue='', header='true')
这是我正在使用的 CSV:http://pastebin.com/waahrgqB
最后一行是它中断并引发java.lang.NumberFormatException: null的地方
似乎有些数字列是空字符串,而另一些只是空的。有人可以帮我解决这个问题吗?
【问题讨论】:
-
你确定它只在最后一个数据行中断吗?其他数据行没问题? --- 也许你也可以让你的脚本完整,所以我们可以复制粘贴它。我认为现在缺少一些
import语句。
标签: python csv apache-spark pyspark