返回

python-Pandas数据帧类型datetime64[ns]在Hive/Athena中不起作用

发布时间:2022-04-12 04:37:33 425
# node.js

我正在开发一个python应用程序,它将csv文件转换为与hive/athena兼容的拼花地板格式,我正在使用fastparquet和pandas库来执行此操作。csv文件中有时间戳值,如2018-12-21 23:45:00需要写成timestamp输入拼花文件。下面是我正在运行的代码,

columnNames = ["contentid","processed_time","access_time"]

dtypes = {'contentid': 'str'}

dateCols = ['access_time', 'processed_time']

s3 = boto3.client('s3')

obj = s3.get_object(Bucket=bucketname, Key=keyname)

df = pd.read_csv(io.BytesIO(obj['Body'].read()), compression='gzip', header=0, sep=',', quotechar='"', names = columnNames, error_bad_lines=False, dtype=dtypes, parse_dates=dateCols)

s3filesys = s3fs.S3FileSystem()

myopen = s3filesys.open

write('outfile.snappy.parquet', df, compression='SNAPPY', open_with=myopen,file_scheme='hive',partition_on=PARTITION_KEYS)

代码运行成功,下面是pandas创建的数据帧

contentid                 object
processed_time            datetime64[ns]
access_time               datetime64[ns]

最后,当我在Hive和athena中查询拼花地板文件时,时间戳值为+50942-11-30 14:00:00.000而不是2018-12-21 23:45:00

非常感谢您的帮助

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(2)
按点赞数排序
用户头像