首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >带有时间戳数据的PyArrow发行

带有时间戳数据的PyArrow发行
EN

Stack Overflow用户
提问于 2022-09-20 00:17:32
回答 2查看 172关注 0票数 1

我正在尝试使用pyarrow将数据从csv加载到一个拼花文件中。我使用转换选项将数据类型设置为正确的类型,然后使用timestamp_parsers选项来规定如何解释时间戳数据:请参见下面的"csv“:

代码语言:javascript
复制
time,data
01-11-19 10:11:56.132,xxx

请看下面的代码示例。

代码语言:javascript
复制
import pyarrow as pa
from pyarrow import csv
from pyarrow import parquet


convert_dict = {
    'time': pa.timestamp('us', None),
    'data': pa.string()
}

convert_options = csv.ConvertOptions(
    column_types=convert_dict
    , strings_can_be_null=True
    , quoted_strings_can_be_null=True
    , timestamp_parsers=['%d-%m-%y %H:%M:%S.%f']
)

table = csv.read_csv('test.csv', convert_options=convert_options)
print(table)
parquet.write_table(table, 'test.parquet')

基本上,pyarrow不喜欢某些strptime值。具体来说,在这种情况下,它不喜欢"%f“,这是小数秒(https://www.geeksforgeeks.org/python-datetime-strptime-function/)。如果你能帮我做我需要的事,我将不胜感激。

为了明确起见,如果我将数据编辑为没有小数秒,然后从timestamp_parsers选项中删除"%f“,我就可以让代码运行。然而,我需要保持数据的完整性,所以这不是一种选择。对我来说,这就像是一个小虫子,或者说我是个白痴,而且漏掉了一些显而易见的东西。两种选择都开放,只是想知道它是哪一种。

EN

Stack Overflow用户

发布于 2022-10-04 18:10:15

因此,我发现对于时间戳数据,您应该尝试使用默认解析器格式(ISO8601)的数据。例如,如果使用py箭头时间戳数据类型将csv数据转换为拼图。只需使用这种格式的csv数据:

无时区

代码语言:javascript
复制
YYYY-MM-DDTHH:MI:SS.FF6

随时区

代码语言:javascript
复制
YYYY-MM-DDTHH:MI:SS.FF6TZH:TZM
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73780443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档