在 spark/scala 中加载 csv 文件的有效方法
Efficient way to load csv file in spark/scala
我正在尝试从 spark 在 scala 中加载一个 csv 文件。我看到我们可以使用以下两种不同的语法:
sqlContext.read.format("csv").options(option).load(path)
sqlContext.read.options(option).csv(path)
这两者有什么区别,哪个性能更好?
谢谢
没有区别
那么为什么两者都存在?
.format(fmt).load(path)
方法是一种灵活的 可插入 API 允许添加更多格式而无需重新编译 spark - 您可以注册别名自定义数据源实现并让 Spark 使用它们; "csv" used to be 这样的自定义实现(在打包的 Spark 二进制文件之外),但它现在是项目的一部分
- "built-in" 数据源(如
csv
、parquet
、json
...)有 shorthand 方法,这使得代码有点更简单(并在编译时验证)
最终,他们都创建了一个 CSV 数据源并使用它来加载数据。
底线,对于任何支持的格式,您应该选择 "shorthand" 方法,例如csv(path)
。
我正在尝试从 spark 在 scala 中加载一个 csv 文件。我看到我们可以使用以下两种不同的语法:
sqlContext.read.format("csv").options(option).load(path)
sqlContext.read.options(option).csv(path)
这两者有什么区别,哪个性能更好? 谢谢
没有区别
那么为什么两者都存在?
.format(fmt).load(path)
方法是一种灵活的 可插入 API 允许添加更多格式而无需重新编译 spark - 您可以注册别名自定义数据源实现并让 Spark 使用它们; "csv" used to be 这样的自定义实现(在打包的 Spark 二进制文件之外),但它现在是项目的一部分- "built-in" 数据源(如
csv
、parquet
、json
...)有 shorthand 方法,这使得代码有点更简单(并在编译时验证)
最终,他们都创建了一个 CSV 数据源并使用它来加载数据。
底线,对于任何支持的格式,您应该选择 "shorthand" 方法,例如csv(path)
。