gpt4 book ai didi

hadoop - 配置单元分区列未通过sc.textFile在rdd中出现

转载 作者:行者123 更新时间:2023-12-02 20:47:06 25 4
gpt4 key购买 nike

Hive分区列不是基础已保存数据的一部分,我需要知道如何通过sc.textFile(filePath)语法将其提取以将其加载到RDD中。

我知道创建配置单元上下文的另一种方法,但所有人都想知道是否有一种方法可以直接通过sc.textFile(filePath)语法获取并使用它。

最佳答案

通过在保存时按列对数据进行分区,该列数据将存储在文件结构中而不是实际文件中。因为sc.textFile(filePath)是用于读取单个文件的,所以我认为它不支持读取分区数据。

我会建议将数据作为数据帧读取,例如:

val df = hiveContext.read().format("orc").load("path/to/table/") 

也可以使用 wholeTextFiles()方法。然后,您将得到一个 (file path, file data)元组,从中可以解析出分区数据列,然后将其添加为新列。

如果存储大小没有问题,那么另一种解决方案是将分区列的信息存储两次。一次在文件结构中(通过对该列进行分区来完成),再一次在数据本身中。这是通过 复制列并将其保存到文件之前实现的。说有问题的列名为 colA
val df2 = df.withColumn("colADup", $"colA")
df2.write.partitionBy("colADup").orc("path/to/save/")

这也可以轻松扩展到多列。

关于hadoop - 配置单元分区列未通过sc.textFile在rdd中出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47524093/

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