我想从csv文件创建一个Parquet文件。出于测试目的,我在下面编写了一段代码,它读取一个文件,并首先将其转换为Dataframe,然后再转换为pyarrow表。然后,该表存储在awss3上,并希望对该表运行配置单元查询。
输入文件内容:
YEAR|WORD
2017|Word 1
2018|Word 2
代码:
dataFrame=pd.read_csv(inputFile, sep='|')
print(dataFrame)
print(dataFrame.dtypes)
print(dataFrame.columns)
dataFrame['C1'] = dataFrame['C1'].astype('str')
print(dataFrame.dtypes)
table=pa.Table.from_pandas(dataFrame)#,schema=pa.string())
pq.write_table(table, outputFile)
在写入pyarrow表之后,我查询了parquet文件,以确保数据可以很好地存储在s3中。然而结果却很奇怪:
+--------+--------------+
| YEAR | WORD |
+--------+--------------+
| 2017 | [B@60716d4f |
| 2018 | [B@36bf8f00 |
+--------+--------------+
不知何故,int值显示得很好,但是object/str值转换得不好。
感谢你的帮助。
谢谢。
1条答案
按热度按时间suzh9iv81#
这对我往返旅行来说很好。请指定您的平台和版本
python
,pandas
以及pyarrow
在3.6/macox上(也在2.7上工作)