有效的方式来加载火花/斯卡拉
问题描述:
我试图从火花阶加载CSV文件CSV文件。我看到,我们可以使用下面的两种不同的语法做:有效的方式来加载火花/斯卡拉
sqlContext.read.format("csv").options(option).load(path)
sqlContext.read.options(option).csv(path)
是什么这两个并给出了更好的性能区别? 感谢
答
有没有区别。
那么,为什么同时存在?
- 的
.format(fmt).load(path)
方法是一种灵活的,可插入的 API,允许添加更多的格式,而不必重新编译火花 - 你可以注册自定义数据源实现的别名和有火花使用它们; “CSV” used to be这样的定制实现(星火包装的二进制文件外),但它现在是项目 - 没有关于“内置”数据源速记方法(如
csv
,parquet
,json
的一部分... ),这使代码更简单一些(并在编译时验证)
最终,它们都创建一个CSV数据源并使用它来加载数据。
底线,对于任何支持的格式,你应该选择“速记”的方法,例如csv(path)
。