使用spark访问放置在hdfs中的csv文件

Accessing csv file placed in hdfs using spark

我已经使用 hadoop -put 命令将一个 csv 文件放入 hdfs 文件系统。我现在需要使用 pyspark csv 访问 csv 文件。它的格式类似于

`plaintext_rdd = sc.textFile('hdfs://x.x.x.x/blah.csv')`

我是 hdfs 的新手。如何找到要放置在hdfs://x.x.x.x中的地址?

这是我输入

时的输出

hduser@remus:~$ hdfs dfs -ls /input

Found 1 items
-rw-r--r--   1 hduser supergroup        158 2015-06-12 14:13 /input/test.csv

感谢任何帮助。

您需要提供文件在 HDFS 中的完整路径,url 将在您提到的 hadoop 配置核心站点或 hdfs 站点中提及。

Check your core-site.xml & hdfs-site.xml for get the details about url.

找到任何 url 的简单方法是从浏览器访问您的 hdfs 并获取路径。

If you are using absolute path in your file system use file:///<your path>

尝试指定不带hdfs的绝对路径://

plaintext_rdd = sc.textFile('/input/test.csv')

Spark 而 运行 在与 HDFS 相同的集群上使用 hdfs:// 作为默认 FS。

通过指向可以读取csv文件的包来启动spark shell或spark-submit,如下所示:

spark-shell  --packages com.databricks:spark-csv_2.11:1.2.0

并且在spark代码中,您可以读取如下csv文件:

val data_df = sqlContext.read.format("com.databricks.spark.csv")
              .option("header", "true")
              .schema(<pass schema if required>)
              .load(<location in HDFS/S3>)