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