scala - 如何将路径列表传递给 spark.read.load?
问题描述
我可以通过将多个路径传递给方法来一次加载多个文件load
,例如
spark.read
.format("com.databricks.spark.avro")
.load(
"/data/src/entity1/2018-01-01",
"/data/src/entity1/2018-01-12",
"/data/src/entity1/2018-01-14")
我想先准备一个路径列表并将它们传递给load
方法,但是我收到以下编译错误:
val paths = Seq(
"/data/src/entity1/2018-01-01",
"/data/src/entity1/2018-01-12",
"/data/src/entity1/2018-01-14")
spark.read.format("com.databricks.spark.avro").load(paths)
<console>:29: error: overloaded method value load with alternatives:
(paths: String*)org.apache.spark.sql.DataFrame <and>
(path: String)org.apache.spark.sql.DataFrame
cannot be applied to (List[String])spark.read.format("com.databricks.spark.avro").load(paths)
为什么?如何将路径列表传递给load
方法?
解决方案
您只需要一个splat运算符 ( _*
)paths
列表为
spark.read.format("com.databricks.spark.avro").load(paths: _*)
推荐阅读
- node.js - Angular Nodejs MySql CORS 问题
- java - 播放服务器音乐时冻结android应用
- c# - 大型数据集上的 Kendo Grid Export to Excel 错误
- c++ - 在向量中查找映射键的最快方法
- solr - 获取 SolrException:为查询定义了两次提升查询
- hibernate - Jpa @PersistenceUnit 忽略 transaction_new
- c++ - CRC32 C++实现使用bool数组并手动逐位异或
- r - 如何提取最长匹配?
- r - 具有新行添加的 R Shiny 数据框(具有因子变量级别的自动填充)
- java - 运行 Spring Boot 应用程序时出现 Whitelabel 错误