apache-spark - 如何使用火花从hdfs加载多个文件
问题描述
我尝试使用以下代码从 HDFS 加载多个文件:
val data = spark
.read
.option("header", "true")
.option("mergeSchema","true")
.format("parquet")
.load("data/day=1/att=2/*,data/day=1/att=3/*,data/day=1/att=4/*")
我得到一个例外:
org.apache.spark.sql.AnalysisException:
Path does not exist: hdfs://user/ccc/data/day=1/att=2/*,data/day=1/att=3/*,data/day=1/att=4/*
如何从 hdfs 加载多个文件?
解决方案
您需要将每个文件名分别用引号引起来。以下应该有效:
val data = spark
.read
.option("header", "true")
.option("mergeSchema","true")
.format("parquet")
.load("data/day=1/att=2/*","data/day=1/att=3/*","data/day=1/att=4/*")
推荐阅读
- database - 如何为sqlite中的层次结构数据逐级生成序列号?
- android - 使用导航抽屉和片段未出现工具栏菜单
- opengl - 与 glDrawArrays 相比,glDrawElements 会导致运行更少的顶点着色器吗?
- java - 组合框不显示数据库中的数据
- r - 如何使用 num_range 选择在一个特定列中都包含相同前 4 位数字的行?(希望使用 dplyr/tidyverse)
- python - 在 alpine docker 容器中安装 multidict 时如何修复 gcc 错误?
- android - 如何在屏幕上随机移动图像?
- sql - 执行顺序和哪个更快
- java - 如何在spring security oauth2中分离访问令牌和刷新令牌端点
- python - 如何防止mysql和python中表的重复条目