gpt4 book ai didi

hadoop - 从 hdfs 读取 ocr 文件后难以置信地激发数据帧

转载 作者:可可西里 更新时间:2023-11-01 14:15:34 24 4
gpt4 key购买 nike

我在 Ambari 上使用 spark 2.1.1 和 hadoop 2.6 时遇到问题。我首先在本地计算机上测试了我的代码(单节点、本地文件),一切都按预期工作:

from pyspark.sql import SparkSession

spark = SparkSession\
.builder\
.master('yarn')\
.appName('localTest')\
.getOrCreate()

data = spark.read.format('orc').load('mydata/*.orc')
data.select('colname').na.drop().describe(['colname']).show()

+-------+------------------+
|summary| colname |
+-------+------------------+
| count| 1688264|
| mean|17.963293650793652|
| stddev|5.9136724822401425|
| min| 0.5|
| max| 87.5|
+-------+------------------+

这些值是完全合理的。

现在我将我的数据上传到 hadoop 集群(ambari 设置、yarn、11 个节点)并使用 hadoop fs -put/home/username/mydata/mydata 将其推送到 hdfs

现在我测试了以下表结尾的相同代码:

from pyspark.sql import SparkSession

spark = SparkSession\
.builder\
.master('yarn')\
.appName('localTest')\
.getOrCreate()

data = spark.read.format('orc').load('hdfs:///mydata/*.orc')
data.select('colname').na.drop().describe(['colname']).show()

+-------+------------------+
|summary| colname |
+-------+------------------+
| count| 2246009|
| mean|1525.5387403802445|
| stddev|16250.611372902456|
| min| -413050.0|
| max| 1.6385821E7|
+-------+------------------+

但另一件事完全让我感到困惑 -> 如果我将 mydata/*.orc 更改为 mydata/any_single_file.orchdfs:///mydata/*.orchdfs:///mydata/any_single_file.orc 两个表(集群,本地 pc)是相同的 ...

有人知道更多关于这种奇怪行为的信息吗?

非常感谢!

最佳答案

在为我搜索“解决方案”一周后发现,在某些文件中,模式有点不同(或多或少是一列),虽然在 parquet 中实现了模式合并,但 orc 不支持模式暂时合并.. https://issues.apache.org/jira/plugins/servlet/mobile#issue/SPARK-11412

所以我的解决方法是依次加载 orc 文件,然后使用 df.write.parquet() 方法转换它们。转换完成后。我可以在文件路径中使用 *.parquet 而不是 *.orc 将它们一起加载。

关于hadoop - 从 hdfs 读取 ocr 文件后难以置信地激发数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45073406/

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