gpt4 book ai didi

apache-spark - 在Spark中读取ORC文件时如何保留分区列

转载 作者:行者123 更新时间:2023-12-03 19:33:13 24 4
gpt4 key购买 nike

在 Spark 中读入 ORC 文件时,如果在路径中指定分区列,则该列将不会包含在数据集中。例如,如果我们有

val dfWithColumn = spark.read.orc("/some/path") 

val dfWithoutColumn = spark.read.orc("/some/path/region_partition=1")

那么 dfWithColumn 将有一个 region_partition 列,但 dfWithoutColumn 不会。我如何指定我要包含所有列,即使它们已分区?

我在 Scala 上使用 spark 2.2。

编辑:这是一个可重用的 Spark 程序,它将从命令行接收参数;即使用户传入表的特定分区而不是整个表,我也希望程序能够工作。因此,使用 Dataset.filter 不是一种选择。

最佳答案

它与 Parquet 相同。

引用:https://spark.apache.org/docs/latest/sql-data-sources-parquet.html#partition-discovery

df = spark.read.option("basePath", "file://foo/bar/")
.orc("file://foo/bar/partition_column=XXX")

df 有一个“partition_column”列。

关于apache-spark - 在Spark中读取ORC文件时如何保留分区列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52302926/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com