如何重写代码以避免在 Spark 1.3.1 中使用 SqlContext.read()?

How to rewrite the code to avoid using SqlContext.read() in Spark 1.3.1?

我们的项目原来是在Spark 1.4.0上开发的,现在想迁移到另一个集群,需要一个特殊的Spark JAR,版本是1.3.1。当我们替换 JAR 时,我们发现以下代码不再起作用:

val dataFrame = sqlContext.read.format("com.databricks.spark.csv")
  .options(getOptionProperties(request.Options))
  .schema(schema)
  .load(request.FilePath)

原来read是1.4以后才有的。那么我怎样才能重写代码以获得等效的结果呢?

提前致谢!

要将 CSV 读入数据框,您需要这个第 3 方包 https://github.com/databricks/spark-csv

关于 Spark 1.3 的文档非常清楚

从 1.4.0 SQLContext Documentation .

load(String source, StructType schema, java.util.Map options)

Deprecated. As of 1.4.0, replaced by

read().format(source).schema(schema).options(options).load().

所以我想你可以使用

load("com.databricks.spark.csv", schema, getOptionProperties(request.Options))

得到相同的结果。