使用spark dataFrame从HDFS加载数据

Using spark dataFrame to load data from HDFS

我们可以在从HDFS读取数据时使用DataFrame吗? 我在 HDFS 中有一个制表符分隔的数据。

我用谷歌搜索了一下,但看到它可以与 NoSQL 数据一起使用

如果我没理解错的话,您本质上是想从 HDFS 中读取数据,并且希望将这些数据自动转换为 DataFrame。

如果是这样的话,我会向你推荐this spark csv 库。看看这个,它有一个很好的文档。

DataFrame当然不限于NoSQL数据源。 Parquet、ORC 和 JSON 支持在 1.4 到 1.6.1 中原生提供;使用 spark-cvs 包支持文本分隔文件。

如果您的 tsv 文件位于 /demo/data 的 HDFS 中,则以下代码会将文件读入 DataFrame

sqlContext.read.
  format("com.databricks.spark.csv").
  option("delimiter","\t").
  option("header","true").
  load("hdfs:///demo/data/tsvtest.tsv").show

要 运行 来自 spark-shell 的代码,请使用以下内容:

--packages com.databricks:spark-csv_2.10:1.4.0

在 Spark 2.0 中,csv 是原生支持的,所以您应该可以这样做:

spark.read.
  option("delimiter","\t").
  option("header","true").
  csv("hdfs:///demo/data/tsvtest.tsv").show