我一直在尝试使用 pyarrow read_table 读取 parquet 文件并对其进行子集化。
这是代码
import pyarrow.parquet as pq
s3_uri = "Path to s3"
fp = pq.read_table(
source = s3_uri,
use_threads = True,
filters = [('Date_Time' ,'>=','2022-07-08'),('Date_Time' ,'<', '2022-07-09')]
)
print(fp.to_pandas())
执行上述命令时出现以下错误。
pyarrow.lib.ArrowNotImplementedError:函数greater_equal没有内核匹配的输入类型(数组[timestamp[us]],标量[string])
最佳答案
它需要一个 pa.TimestampScalar
,您可以使用 pa.scalar
创建它
import datetime
fp = pq.read_table(
source="hello.parquet",
use_threads=True,
filters=[
('Date_Time', '>=', pa.scalar(datetime.datetime.strptime('2022-07-08', "%Y-%m-%d"))),
('Date_Time', '<', pa.scalar(datetime.datetime.strptime('2022-07-09', "%Y-%m-%d")))
]
)
关于python - 日期时间列上的 Pyarrow 子集数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72961827/