【问题标题】:Parquet file being read as emptyParquet 文件被读取为空
【发布时间】:2021-09-02 19:10:45
【问题描述】:

我正在尝试读取从我的 Jupyter 笔记本上的 HDFS 下载的镶木地板文件,但它显示为空。我知道它不是空的,因为我在将它保存到 HDFS 之前已经处理过它。有谁知道为什么它被读取为空?

HDFS和集群环境下文件的大小:

hadoop fs -du -s -h /user/some/test.parquet
1.2 M  3.5 M  /user/some/test.parquet

val test = spark.read.parquet("hdfs:///user/some/test.parquet")

test.count()
res0: Long = 10

在 Jupyter notebook 中的杏仁核上使用 Scala。

import org.apache.log4j.{Level, Logger}
Logger.getLogger("org").setLevel(Level.OFF)

import org.apache.spark.sql._

val spark = {
    SparkSession.builder()
    .master("local[*]")
    .getOrCreate()
}

def sc = spark.sparkContext

val test = spark.read.parquet("/Users/me/some/test.parquet")
test: DataFrame = [UnitId: string, GeoId: string ... 26 more fields]

test.count()
res28: Long = 0L

【问题讨论】:

    标签: scala apache-spark jupyter-notebook parquet


    【解决方案1】:

    对于任何感兴趣的人,我发现了这个问题。 我使用“hadoop fs -getmerge”从 HDFS 下载了 parquet 文件,导致文件损坏。

    处理 parquet 文件的正确方法是“hadoop fs -get”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-27
      • 2017-01-16
      • 1970-01-01
      • 2020-10-28
      • 2021-03-07
      • 1970-01-01
      • 2018-12-13
      • 1970-01-01
      相关资源
      最近更新 更多