python - 日期时间列上的 Pyarrow 子集数据

标签 python pandas parquet pyarrow

我一直在尝试使用 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/

相关文章:

python - Jupyter notebook 选择旧版本的 numpy

amazon-s3 - 使用 hive 或 prestodb 加载或指向多个 parquet 路径以进行数据分析

apache-spark - Parquet 和 Spark 中的分区策略

python - 如果与列表中的条目匹配,则删除前缀

python - 循环一列并删除字符 - Python Pandas

python - 当值大于某值时如何返回第一个索引

hadoop - 使用 Apache Spark Streaming 和 Dataframes 交互式搜索 Parquet 存储的数据

python - redis python中的 key 过期通知

python - 用空格替换除词内破折号外的标点符号

python - 在 python 中重新导入单个函数