从 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")
我正在尝试使用一个文件
但是当我试图访问这个文件时,我得到一个错误:没有那个文件或目录
你能告诉我如何正确访问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")