小编Fra*_*ank的帖子

为什么在 YARN 集群模式下 spark-submit 在 executor 上找不到 python 包?

我正在boo.py使用spark-submit(Spark 2.0)在 AWS EMR 上运行脚本。

当我使用时文件成功完成

python boo.py
Run Code Online (Sandbox Code Playgroud)

但是,当我运行时它失败了

spark-submit --verbose --deploy-mode cluster --master yarn  boo.py
Run Code Online (Sandbox Code Playgroud)

登录yarn logs -applicationId ID_number显示:

Traceback (most recent call last):
File "boo.py", line 17, in <module>
import boto3
ImportError: No module named boto3
Run Code Online (Sandbox Code Playgroud)

我正在使用的pythonboto3模块是

$ which python
/usr/bin/python
$ pip install boto3
Requirement already satisfied (use --upgrade to upgrade): boto3 in /usr/local/lib/python2.7/site-packages
Run Code Online (Sandbox Code Playgroud)

如何附加此库路径以便spark-submit可以读取boto3模块?

python apache-spark pyspark

5
推荐指数
1
解决办法
1518
查看次数

Spark合并与收集,哪个更快?

pyspark使用 AWS EMR 和 ~15 m4.large 核心来处理 50Gb 数据。

每行数据都包含一天中特定时间的一些信息。我使用以下for循环来提取和聚合每小时的信息。最后我是union数据,因为我希望将结果保存在一个csv 文件中。

# daily_df is a empty pyspark DataFrame
for hour in range(24):
    hourly_df = df.filter(hourFilter("Time")).groupby("Animal").agg(mean("weights"), sum("is_male"))
    daily_df = daily_df.union(hourly_df)
Run Code Online (Sandbox Code Playgroud)

据我所知,我必须执行以下操作才能强制pyspark.sql.Dataframe对象保存到 1 个 csv 文件(约 1Mb)而不是 100 多个文件:

daily_df.coalesce(1).write.csv("some_local.csv")
Run Code Online (Sandbox Code Playgroud)

似乎花了大约70分钟才能完成这个进度,我想知道我是否可以通过使用collect()类似的方法使其更快?

daily_df_pandas = daily_df.collect()
daily_df_pandas.to_csv("some_local.csv")
Run Code Online (Sandbox Code Playgroud)

python apache-spark pyspark

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

apache-spark ×2

pyspark ×2

python ×2