将镶木地板文件转换为数据框时,我遇到了文件类型问题。
我愿意
bucket = 's3://some_bucket/test/usages'
import pyarrow.parquet as pq
import s3fs
s3 = s3fs.S3FileSystem()
read_pq = pq.ParquetDataset(bucket, filesystem=s3).read_pandas()
当我这样做时read_pq
,我得到
pyarrow.Table
_COL_0: decimal(9, 0)
_COL_1: decimal(9, 0)
_COL_2: decimal(9, 0)
_COL_3: decimal(9, 0)
当我这样做时df = read_pd.to_pandas(); df.dtypes
,我得到
_COL_0 object
_COL_1 object
_COL_2 object
_COL_3 object
dtype: object
原始数据都是整数。当我对 pandas 数据框中的对象进行操作时,操作非常缓慢。
- 如何将 parquet 列转换为在 pandas 中读取为 int 或 float 的格式?
- 还是最好像上面那样对熊猫数据框进行操作并使用
pd.to_numeric
或类似? - 还是原始数据格式有问题
decimal(9, 0)
?
还是最好直接在熊猫数据框上进行转换?
我试过:read_pq.column('_COL_0').cast('int32')
抛出一个错误
No cast implemented from decimal(9, 0) to int32