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

时间:2015-06-12 09:37:13

标签: csv hadoop apache-spark pyspark

我已使用SET ANSI_PADDING ON CREATE NONCLUSTERED INDEX [index_alternative_a] ON [dbo].[sysEmailMessage] ( [SentDate] ASC, [ErrorCount] ASC ) WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY] 命令将csv文件放入hdfs文件系统。我现在需要使用pyspark csv访问csv文件。它的格式类似于

hadoop -put

我是hdfs的新手。如何找到`plaintext_rdd = sc.textFile('hdfs://x.x.x.x/blah.csv')` 中的地址?

这是我输入

时的输出

hdfs://x.x.x.x

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

感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

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

  

检查你的core-site.xml& hdfs-site.xml用于获取有关的详细信息   网址。

查找任何网址的简便方法是从浏览器访问您的hdfs并获取路径。

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

答案 1 :(得分:0)

尝试在没有hdfs://

的情况下指定绝对路径
plaintext_rdd = sc.textFile('/input/test.csv')

使用HDFS在同一群集上运行时使用的hd使用hdfs://作为默认FS。

答案 2 :(得分:0)

通过指向可以读取csv文件的包来启动spark外壳或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>)