当前位置: 首页 > 知识库问答 >
问题:

如何使用Pyarow更改parquet文件中列的名称?

卫浩瀚
2023-03-14

我用Pyarow创建了几百个拼花文件。但是,其中一些文件的字段/列与原始列(称为Sporange)的名称略有不同(我们称之为橙色),因为其中一个文件使用了查询的变体。否则,数据(所有其他字段和所有数据)是相同的。在数据库世界中,我将执行ALTER TABLE并重命名列。但是,我不知道如何使用镶木地板/PyArrow

有没有一种方法可以重命名文件中的列,而不必重新生成或复制文件?

或者,我可以读取它(read_table或ParquetFile,我假设),更改对象中的列(不确定如何做到这一点)并将其写出来吗?

我看到了“rename_columns ”,但不确定它是如何工作的;我试着单独使用它,它说“rename_columns未定义”。

rename_columns(self,name) 使用重命名为提供的名称的列创建新表。

非常感谢!

共有1个答案

章昆琦
2023-03-14

我怀疑您正在使用不支持rename_columnspyrow版本。您可以运行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')
 类似资料:
  • 问题内容: 可以在Django中更改上传文件的文件名吗?我搜索了,但找不到任何答案。 我的要求是,无论何时上传文件,其文件名都应以以下格式更改。 非常感谢你… 问题答案: 你如何上传文件?我以为。 FileField.upload_to的文档说,该字段 也可以是可调用的,例如函数,将被调用以获得上载路径,包括文件名。该可调用对象必须能够接受两个参数,并返回要传递给存储系统的Unix样式的路径(带有

  • 我很难更改列名。我知道我的语法是正确的,但我收到了一条错误消息。 我使用的语法是: 我一直收到这个错误消息,错误1064(42000):您的SQL语法有错误;查看与MySQL服务器版本对应的手册,了解第2行“COLUMN CustomerID to CollaboratorID”附近使用的正确语法 请帮忙。

  • 我在文本编辑器中有一个另存为...功能。我想做一个另存为,保存到一个新文件,但是我要保存的永久文件现在应该总是这个新文件。所以当我点击我的另一个按钮,保存,而不是保存到以前的位置,将继续保存到用JFileChooser选择的位置。 我有一个名为currentFile的文件对象,它应该链接到通过“另存为”选择的文件。我目前正在通过在我的按钮操作执行功能中创建一个名为fileName的文件,然后将cu

  • Apache Drill有一个很好的功能,可以从许多传入的数据集中制作镶木地板文件,但是似乎没有太多关于如何稍后使用这些镶木地板文件的信息 - 特别是在Hive中。 Hive有没有办法利用这些“1_0_0.parquet”等文件?也许创建一个表并从拼花文件加载数据,或者创建一个表并以某种方式将这些拼花文件放在hdfs中,以便Hive读取它?