pandas - 如何使用 dask libray 将镶木地板表(pyarrow)附加到现有的输出镶木地板文件?
问题描述
我正在尝试实现将数据存储到 parquet-structure 的功能,将其输出到 patquet-file,如果存在输出 parquet-file - 使用 dask 附加 parquet-structure
self.flag = True
self.columns = ['original_ids', 'masked_ids', 'masked_labels', 'masked_positions']
fields = [
pa.field('original_ids',pa.list_(pa.int32())),
pa.field('masked_ids',pa.list_(pa.int32())),
pa.field('masked_labels', pa.list_(pa.int32())),
pa.field('masked_positions', pa.list_(pa.int32())),
]
self.myschema = pa.schema(fields)
df_input = pd.DataFrame({'original_ids' : [original_ids], 'masked_ids' : [masked_ids],
'masked_labels' : [masked_lm_ids], 'masked_positions': [masked_lm_positions]})
df_input = dd.from_pandas(df_input, npartitions=1)
if self.flag:
dd.to_parquet(df_input, self.output_f, engine='pyarrow', compression='gzip', write_index=False,
compute=True, append=False, ignore_divisions=True, schema=self.myschema)
self.flag = False
else:
dd.to_parquet(df_input, self.output_f, engine='pyarrow', compression='gzip', write_index=False,
compute=True, append=True, ignore_divisions=True, schema=self.myschema)
但是我得到了下一个错误:
File "/usr/local/lib/python3.7/site-packages/dask/dataframe/io/parquet/core.py", line 424, in to_parquet
**kwargs_pass
File "/usr/local/lib/python3.7/site-packages/dask/dataframe/io/parquet/arrow.py", line 583, in initialize_write
"Previous: {} | New: {}".format(names, list(df.columns))
ValueError: Appended columns not the same.
Previous: ['item', 'item', 'item', 'item'] | New: ['original_ids', 'masked_ids', 'masked_labels', 'masked_positions']
如何更改现有代码以修复此错误?
解决方案
推荐阅读
- android - Android Studio 错误 \Android\Sdk\ndk-bundle/ndk-build.cmd'' 以非零退出值 2 结束
- codenameone - 在 cd1 中使用 SHA512Digest,就像在 java 中使用 MessageDigest
- javascript - 如何在具有不同数据类型的谷歌图表时间轴中动态添加行
- sql - 如何使用 T-SQL 更改表的方向
- ios - 如何使用 Sheets API v4 在 Swift 4 中创建新的 Google 表格
- javascript - 如何在混合 Vue 项目中添加/删除数组中的行?
- ruby - 字母密码
- vba - VBA 简报。将形状设置为变量
- java - 如何阻止 JEditorPane 自动缩进后续文本?
- javascript - 你如何比较javascript中两个不同大小数组的值(不是索引)?