从 Scala 读取 Python 文件

Reading a Python file from Scala

我正在尝试使用一个文件

但是当我试图访问这个文件时,我得到一个错误:没有那个文件或目录

你能告诉我如何正确访问hdfs中的文件吗?

更新:

答案的作者指引了我正确的方向。 结果,这就是我执行 python 脚本的方式:

#!/usr/bin/python
# -*- coding: utf-8 -*-

#import pandas as pd
import sys

for line in sys.stdin:
   print('Hello, ' + line)

# this is hello.py

和 Scala 应用程序:

spark.sparkContext.addFile(getClass.getResource("hello.py").getPath, true)
val test = spark.sparkContext.parallelize(List("Body!")).repartition(1)

val piped = test.pipe(SparkFiles.get("./hello.py"))

val c = piped.collect()
c.foreach(println)

输出:你好,Body!

现在我不得不考虑,作为一个集群用户,我是否可以在workers上安装pandas

我认为您应该尝试直接引用外部文件,而不是尝试将其下载到您的 Spark 驱动程序然后再次上传

spark.sparkContext.addFile(s"hdfs://$srcPy")