有效的方式来加载火花/斯卡拉

问题描述:

我试图从火花阶加载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这样的定制实现(星火包装的二进制文件外),但它现在是项目
  • 没有关于“内置”数据源速记方法(如csvparquetjson的一部分... ),这使代码更简单一些(并在编译时验证)

最终,它们都创建一个CSV数据源并使用它来加载数据。

底线,对于任何支持的格式,你应该选择“速记”的方法,例如csv(path)