从 hdfs 读取文件 - pyspark

Posted

技术标签:

【中文标题】从 hdfs 读取文件 - pyspark【英文标题】:Read files from hdfs - pyspark 【发布时间】:2019-07-19 12:02:11 【问题描述】:

我是 Pyspark 的新手,当我执行以下代码时,出现属性错误。

我正在使用 apache spark 2.4.3

t=spark.read.format("hdfs:\\test\a.txt")
t.take(1)

我希望输出为 1,但它会引发错误。

AttributeError: dataframereader object has no attribute take

【问题讨论】:

【参考方案1】:

您没有正确使用 API:

format用于指定你想要的输入数据源格式

在这里,您正在阅读文本文件,所以您所要做的就是:

t = spark.read.text("hdfs://test/a.txt")
t.collect()

查看相关doc

【讨论】:

我已经尝试了你建议的代码,但是我得到了无效的语法错误。 你得到什么异常? val t=spark.read.text("hdfs://karthi/a.txt") 文件“”,第 1 行 val t=spark.read.text("hdfs: //karthi/a.txt") ^ SyntaxError: 无效语法 我的错,val 对于 Scala 是必需的。 pyspark 确实不需要它。更新了我的答案。尝试不使用 val。 查看 pyspark 文档中的 example。这和我建议的非常相似。它应该可以工作,或者您在其他地方遇到了另一个问题。

以上是关于从 hdfs 读取文件 - pyspark的主要内容,如果未能解决你的问题,请参考以下文章

从 pyspark 中的 HDFS 读取 70gb bson 文件然后将其索引到 Elastic 时出错

PySpark 无法从 hdfs 读取 csv:HiveExternalCatalog 错误

Pyspark:使用 configParser 读取 HDFS 上的属性文件

如何使用pyspark使用的通配符读取hdfs文件

Pyspark:获取HDFS路径上的文件/目录列表

如何在pyspark中读取和写入坐标矩阵到文件