- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用 pandas
/pyarrow
编写的分区气象站读数目录。
c.to_parquet(path=f"data/{filename}.parquet", engine='pyarrow', compression='snappy', partition_cols=['STATION', 'ELEMENT'])
当我尝试使用 glob 和谓词下推子句读回一些文件时,如下所示
ddf= dd.read_parquet("data/*.parquet", engine='pyarrow', gather_statistics=True, filters=[('STATION', '==', 'CA008202251'), ('ELEMENT', '==', 'TAVG')], columns=['TIME','ELEMENT','VALUE', 'STATION'])
我得到一个索引错误
IndexError Traceback (most recent call last)
<timed exec> in <module>
/usr/local/lib/python3.9/site-packages/dask/dataframe/io/parquet/core.py in read_parquet(path, columns, filters, categories, index, storage_options, engine, gather_statistics, split_row_groups, read_from_paths, chunksize, aggregate_files, **kwargs)
314 gather_statistics = True
315
--> 316 read_metadata_result = engine.read_metadata(
317 fs,
318 paths,
/usr/local/lib/python3.9/site-packages/dask/dataframe/io/parquet/arrow.py in read_metadata(cls, fs, paths, categories, index, gather_statistics, filters, split_row_groups, read_from_paths, chunksize, aggregate_files, **kwargs)
540 split_row_groups,
541 gather_statistics,
--> 542 ) = cls._gather_metadata(
543 paths,
544 fs,
/usr/local/lib/python3.9/site-packages/dask/dataframe/io/parquet/arrow.py in _gather_metadata(cls, paths, fs, split_row_groups, gather_statistics, filters, index, dataset_kwargs)
1786
1787 # Step 1: Create a ParquetDataset object
-> 1788 dataset, base, fns = _get_dataset_object(paths, fs, filters, dataset_kwargs)
1789 if fns == [None]:
1790 # This is a single file. No danger in gathering statistics
/usr/local/lib/python3.9/site-packages/dask/dataframe/io/parquet/arrow.py in _get_dataset_object(paths, fs, filters, dataset_kwargs)
1740 if proxy_metadata:
1741 dataset.metadata = proxy_metadata
-> 1742 elif fs.isdir(paths[0]):
1743 # This is a directory. We can let pyarrow do its thing.
1744 # Note: In the future, it may be best to avoid listing the
IndexError: list index out of range
我可以单独加载 parquet 目录
ddf= dd.read_parquet("data/2000.parquet", engine='pyarrow', gather_statistics=True, filters=[('STATION', '==', 'CA008202251'), ('ELEMENT', '==', 'TAVG')], columns=['TIME','ELEMENT','VALUE', 'STATION'])
dask
/parquet
/pyarrow
读取是否可以通配?
最佳答案
在 .to_parquet
中使用 partition_cols
时,分区数据帧保存在单独的文件中,因此 data/2000.parquet
在您的情况下是可能是一个文件夹。
import pandas as pd
from os.path import isdir
# test dataframe
df = pd.DataFrame(range(3), columns=['a'])
df['b'] = df['a']
df['c'] = df['a']
# save without partitioning
df.to_parquet('test.parquet')
print(isdir('test.parquet')) # False
# save with partitioning
df.to_parquet('test_partitioned.parquet', partition_cols=['a', 'b'])
print(isdir('test_partitioned.parquet')) # True
作为解决此问题的方法,使用 os.walk
或 glob
构造一个显式的 parquet 文件列表可能是一个很好的解决方案。请注意,如果有多个分区列,则会有多个包含 parquet 文件的嵌套文件夹,因此简单的 glob 是不够的,您需要进行递归搜索。
或者,可以为每一年构造 dask.dataframes
,然后将它们与 dd.concat
连接起来。
关于pandas - 带分区 dask read_parquet 目录的目录通配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68765564/
我有一个用 pandas/pyarrow 编写的分区气象站读数目录。 c.to_parquet(path=f"data/{filename}.parquet", engine='pyarrow', c
我正在尝试使用 dask.dataframe.read_parquet 方法读取一些 Parquet 文件。在数据中,我有一个名为 timestamp 的列,其中包含以下数据: 0 2018-
我正在将大量(100 到 1000)的 parquet 文件读取到单个 dask 数据帧(单台机器,全部本地)中。我意识到 files = ['file1.parq', 'file2.parq', .
我正在尝试使用 dask read_parquet 方法和 filters kwarg 读取 Parquet 文件。但是它有时不会根据给定的条件进行过滤。 例子:使用 dates 列创建和保存数据框
我有一个 pandas 数据框。我使用 Spark 将其保存到 Parquet 中,然后尝试通过 dask 进行读取。问题是分区列未使用 pyarrow 引擎读回。 df = pd.DataFrame
我试着像这样从 s3 读取 Parquet : import dask.dataframe as dd s3_path = "s3://my_bucket/my_table" times = dd.r
wr.s3.read_parquet() 中的 partition_filter 参数无法过滤 S3 上的分区 Parquet 数据集。这是一个可重现的示例(可能需要正确配置的 boto3_sessi
wr.s3.read_parquet() 中的 partition_filter 参数无法过滤 S3 上的分区 Parquet 数据集。这是一个可重现的示例(可能需要正确配置的 boto3_sessi
当我使用 pandas 读取 databricks 笔记本中的 parquet 文件时,发生以下错误:AttributeError:模块“pandas”没有属性“read_parquet”。尝试在我的
我有一个包含多个 .parquet 文件的数据文件夹,这些文件是使用 pandas 和 pyarrow 转换的 .csv 文件。所有文件都有一个名为“Timestamp”的日期时间索引,以及名为“Op
我尝试传递类 paramiko.sftp_file.SFTPFile 而不是 pandas.read_parquet 的文件 URL,效果很好。但是当我用 Dask 尝试同样的操作时,它抛出了一个错误
我正在将大型 CSV 文件转换为 Parquet 文件以进行进一步分析。我将 CSV 数据读入 Pandas 并指定 dtypes 列,如下所示 _dtype = {"column_1": "floa
我正在尝试读取此处找到的 Parquet 格式的 02-2019 fhv 数据 https://d37ci6vzurychx.cloudfront.net/trip-data/fhv_tripdata
我是一名优秀的程序员,十分优秀!