spark-submit 不从 s3 读取文件,只是停留在上面
spark-submit doesn't read file from s3, just stucks on it
当我尝试使用 spark-submit 从 s3 读取数据时遇到问题。
该应用程序在从 s3 存储桶读取数据时卡住了,没有任何警告或控制台输出。但是,如果我 运行 使用 python 相同的应用程序 - 它有效!也许有人遇到过同样的问题?
test.py的代码:
import os
from pyspark.sql import SparkSession
os.environ["PYSPARK_SUBMIT_ARGS"] = """--packages com.amazonaws:aws-java-sdk:1.11.711,org.apache.hadoop:hadoop-aws:3.2.0
--conf spark.serializer=org.apache.spark.serializer.KryoSerializer
--conf spark.driver.memory=2g --conf spark.executor.memory=8g
--conf spark.dynamicAllocation.enabled=false pyspark-shell"""
spark = SparkSession.builder.appName(f"test").getOrCreate()
print("reading from s3") #stucks here
s3filepath = "s3a://path/to/file"
df = spark.read.csv(
s3filepath,
sep='|',
header='false',
nullValue='',
inferSchema=True)
print("showing df")
df.show()
spark-submit 命令:
PYSPARK_PYTHON=python3 /usr/bin/spark-submit --deploy-mode client \
--packages com.amazonaws:aws-java-sdk:1.11.519,org.apache.hadoop:hadoop-aws:3.2.0 \
--conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
--conf spark.driver.memory=2g \
--conf spark.executor.memory=8g \
--conf spark.dynamicAllocation.enabled=false \
test.py
但是当我只使用 python3 test.py
时,它可以正常工作并立即正确读取所有内容。
spark版本:2.4.4
Hadoop 版本:3.2.1
文件包含约 5K 行。
问题是由 spark 资源分配管理器引起的。通过减少请求的资源来解决它。为什么使用 python3 test.py 仍然是个谜
当我尝试使用 spark-submit 从 s3 读取数据时遇到问题。 该应用程序在从 s3 存储桶读取数据时卡住了,没有任何警告或控制台输出。但是,如果我 运行 使用 python 相同的应用程序 - 它有效!也许有人遇到过同样的问题?
test.py的代码:
import os
from pyspark.sql import SparkSession
os.environ["PYSPARK_SUBMIT_ARGS"] = """--packages com.amazonaws:aws-java-sdk:1.11.711,org.apache.hadoop:hadoop-aws:3.2.0
--conf spark.serializer=org.apache.spark.serializer.KryoSerializer
--conf spark.driver.memory=2g --conf spark.executor.memory=8g
--conf spark.dynamicAllocation.enabled=false pyspark-shell"""
spark = SparkSession.builder.appName(f"test").getOrCreate()
print("reading from s3") #stucks here
s3filepath = "s3a://path/to/file"
df = spark.read.csv(
s3filepath,
sep='|',
header='false',
nullValue='',
inferSchema=True)
print("showing df")
df.show()
spark-submit 命令:
PYSPARK_PYTHON=python3 /usr/bin/spark-submit --deploy-mode client \
--packages com.amazonaws:aws-java-sdk:1.11.519,org.apache.hadoop:hadoop-aws:3.2.0 \
--conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
--conf spark.driver.memory=2g \
--conf spark.executor.memory=8g \
--conf spark.dynamicAllocation.enabled=false \
test.py
但是当我只使用 python3 test.py
时,它可以正常工作并立即正确读取所有内容。
spark版本:2.4.4
Hadoop 版本:3.2.1
文件包含约 5K 行。
问题是由 spark 资源分配管理器引起的。通过减少请求的资源来解决它。为什么使用 python3 test.py 仍然是个谜