如何解决如何使用Pyarrow更改镶木地板文件中的列名?
我用PyArrow创建了数百个实木复合地板文件。但是,其中一些文件的字段/列的名称(我们将其称为Orange)与原始列(称为Sporange)的名称稍有不同,因为其中一个使用了查询的变体。否则,数据(所有其他字段以及所有数据)是相同的。在数据库世界中,我将创建一个ALTER TABLE并重命名该列。但是,我不知道如何使用镶木地板/ PyArrow
是否有一种方法可以重命名文件中的列,而不必重新生成或复制文件?
或者,我可以读取它(假设是read_table或ParquetFile),更改对象中的列(不确定如何执行)并将其写出吗?
我看到了“ rename_columns”,但是不确定它是如何工作的。我尝试单独使用它,它说“未定义rename_columns”。
rename_columns(自己,名称),创建具有重命名为提供名称的列的新表。
非常感谢!
解决方法
我怀疑您使用的pyarrow
版本不支持rename_columns
。您可以运行pa.__version__
进行检查吗?
否则,您要执行的操作很简单,在下面的示例中,我将b列重命名为c:
import pyarrow as pa
import pyarrow.parquet as pq
col_a = pa.array([1,2,3],pa.int32())
col_b = pa.array(["X","Y","Z"],pa.string())
table = pa.Table.from_arrays(
[col_a,col_b],schema=pa.schema([
pa.field('a',col_a.type),pa.field('b',col_b.type),])
)
pq.write_table(table,'/tmp/original')
original = pq.read_table('/tmp/original')
renamed = original.rename_columns(['a','c'])
pq.write_table(renamed,'/tmp/renamed')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。