【发布时间】:2019-01-26 04:22:18
【问题描述】:
我正在尝试使用 Spark 解释器通过 Zeppelin 访问 HDFS 数据。
这是我的代码:
val bankText = sc.parallelize(hdfs://hadoop:8020/user/zeppelin/bank.csv)
case class Bank(age: Integer, job: String, marital: String, education: String, balance: Integer)
val bank = bankText.map(s => s.split(";")).filter(s => s(0) != "\"age\"").map(
s => Bank(s(0).toInt,
s(1).replaceAll("\"", ""),
s(2).replaceAll("\"", ""),
s(3).replaceAll("\"", ""),
s(5).replaceAll("\"", "").toInt
)
).toDF()
bank.registerTempTable("bank")
我在输出提示中没有收到任何错误,但是我在右上角收到错误消息。
【问题讨论】:
-
尝试在您的数据框“bank”上显示数据框,然后查看 zeppelin 日志中是否有任何错误
-
为什么要设置
hdfs://hadoop:8020? Spark 是否尚未配置到 Hadoop?你能在 Spark shell 中正常运行这段代码吗?此外,您应该使用 SparkCSV 阅读器来读取带有;分隔符的文件。 (使用拆分并不完美) -
@cricket_007 我的主要目标是从 zeppelin 访问 hdfs 数据,代码是从 zeppelin 示例中复制的,我可以更改代码。
-
请查看解释器日志
-
“Zeppelin”代码不是一个东西。 Zeppelin(很可能)不是问题,您的 Spark 配置是,必须在 Zeppelin 之外进行编辑...因此,请尝试使用 Spark shell,让它工作,然后继续设置齐柏林飞艇
标签: apache-spark hadoop hdfs apache-zeppelin