【发布时间】:2022-01-19 00:07:57
【问题描述】:
我遇到与this question 相同的错误,但设置blocksize=None 的推荐解决方案并不能解决我的问题。我正在尝试将纽约出租车数据从 CSV 转换为 Parquet,这是我正在运行的代码:
ddf = dd.read_csv(
"s3://nyc-tlc/trip data/yellow_tripdata_2010-*.csv",
parse_dates=["pickup_datetime", "dropoff_datetime"],
blocksize=None,
dtype={
"tolls_amount": "float64",
"store_and_fwd_flag": "object",
},
)
ddf.to_parquet(
"s3://coiled-datasets/nyc-tlc/2010",
engine="pyarrow",
compression="snappy",
write_metadata_file=False,
)
这是我得到的错误:
"ParserError: Error tokenizing data. C error: Expected 18 fields in line 2958, saw 19".
添加blocksize=None 有时会有所帮助,see here for example,我不确定为什么它不能解决我的问题。
关于如何解决这个问题的任何建议?
此代码适用于 2011 年的出租车数据,因此它们在 2010 年的出租车数据中一定是一些奇怪的东西导致了这个问题。
【问题讨论】:
-
请出示您的例外情况。我相信它可能发生在读取文件头以计算数据帧的元数据时,而不是在处理块时。