提问人:zyxue 提问时间:11/29/2017 最后编辑:Piotr Góralczykzyxue 更新时间:8/7/2018 访问量:11122
为什么读取文件时会收到“partition values: [empty row]”日志消息?
Why do I get "partition values: [empty row]" log messages when reading a file?
问:
我正在使用 Spark SQL 读取 csv,我也收到很多这样的消息:
...some.csv, range: 20971520-24311915, partition values: [empty row]
为什么说它是空行?分区真的是空的吗?
答:
24赞
Piotr Góralczyk
8/7/2018
#1
文件和从文件中读取数据的 Spark 分区都不为空。
由于以下两点,日志消息可能有点令人困惑:
- 消息中的单词 partition 指的是 Hive 样式的分区,即可以具有多个值的命名分区列。这些分区可以从您的目录结构中推断出来,例如,因为它们将是 、 和 ,以及它们的值:、 和 。如果外部表已分区,它们也可以来自 Hive 元存储。
/path/to/partition/a=1/b=hello/c=3.14
a
b
c
1
hello
3.14
- 记录的分区值包装在
InternalRow
中,而不是包装在集合中。
在您的例子中,目录结构是扁平的,或者它不包含分区名称(例如),因此没有 Hive 样式的分区,因此您会在消息中看到。/path/to/partition/1/hello/3.14
[empty row]
评论