【发布时间】:2020-12-20 16:53:58
【问题描述】:
我是 Docker 和 pyspark 的新手...
我有一个在 python3.7-alpine 上运行的 docker 镜像。现在我只想将 csv 文件读入 spark 数据帧
spark = SparkSession. \
builder. \
appName("pythonfile"). \
master("spark://spark-master:7077"). \
config("spark.executor.memory", "512m"). \
getOrCreate()
spark.read.option('header', True).csv('Crimes_2001_to_Present.csv')
但我得到一个:
java.io.FileNotFoundException: File file:/Crimes_2001_to_Present.csv does not exist
在我尝试读取 csv 之前,我打印出我当前的工作目录以及该工作目录中的所有文件夹和文件
print(os.getcwd())
print(os.listdir())
我的 bash 打印出 csv 文件在该目录中:
pythonfile_1 | /
pythonfile_1 | ['home', 'srv', 'etc', 'opt', 'root', 'lib', 'mnt', 'usr', 'media', 'sys', 'dev',
'sbin', 'bin', 'run', 'proc', 'tmp', 'var', 'data', '__pycache__', '.dockerenv',
'Crimes_2001_to_Present.csv', 'Get_data.py', 'Main.py', 'Transform_data.py']
有谁知道 - 或者给我一个提示 - 为什么 pyspark 找不到这个 csv?
pyspark version = 3.0.1
spark_version = 3.0.1
hadoop_version = 2.7
提前致谢:)
【问题讨论】:
-
你是如何启动应用程序的?您使用的是独立的还是纱线?根据配置,您必须将文件放置在执行程序可以访问的位置(例如 hdfs),而不仅仅是驱动程序所在的位置。或者只是尝试
master("local[*]"),因为您正在测试。 -
我在 Dockerfile 中启动与我构建的 docker 映像相关的应用程序。 CMD ['python', './Get_Data.py'] 我试过 master('local[*]') 但是它仍然找不到文件...我什至尝试使用 SparkContext
-
这应该可行,那时我们仍然缺少信息。你能添加一个重现错误的最小 dockerfile 示例吗?