- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 Apache Arrow Spark 集成时遇到了这个问题。
使用带有 Spark 2.4.3 的 AWS EMR
在本地 spark 单机实例和 Cloudera 集群上测试了这个问题,一切正常。
在 spark-env.sh 中设置这些
export PYSPARK_PYTHON=python3
export PYSPARK_PYTHON_DRIVER=python3
spark.version
2.4.3
sc.pythonExec
python3
SC.pythonVer
python3
from pyspark.sql.functions import pandas_udf, PandasUDFType
df = spark.createDataFrame(
[(1, 1.0), (1, 2.0), (2, 3.0), (2, 5.0), (2, 10.0)],
("id", "v"))
@pandas_udf("id long, v double", PandasUDFType.GROUPED_MAP)
def subtract_mean(pdf):
# pdf is a pandas.DataFrame
v = pdf.v
return pdf.assign(v=v - v.mean())
df.groupby("id").apply(subtract_mean).show()
ModuleNotFoundError: No module named 'pyarrow'
at org.apache.spark.api.python.BasePythonRunner$ReaderIterator.handlePythonException(PythonRunner.scala:452)
at org.apache.spark.sql.execution.python.ArrowPythonRunner$$anon$1.read(ArrowPythonRunner.scala:172)
at org.apache.spark.sql.execution.python.ArrowPythonRunner$$anon$1.read(ArrowPythonRunner.scala:122)
at org.apache.spark.api.python.BasePythonRunner$ReaderIterator.hasNext(PythonRunner.scala:406)
at org.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:37)
at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:440)
at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:409)
at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIteratorForCodegenStage3.processNext(Unknown Source)
at org.apache.spark.sql.execution.BufferedRowIterator.hasNext(BufferedRowIterator.java:43)
at org.apache.spark.sql.execution.WholeStageCodegenExec$$anonfun$13$$anon$1.hasNext(WholeStageCodegenExec.scala:636)
at org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:291)
at org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:283)
at org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$24.apply(RDD.scala:836)
at org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$24.apply(RDD.scala:836)
at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:288)
at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90)
at org.apache.spark.scheduler.Task.run(Task.scala:121)
at org.apache.spark.executor.Executor$TaskRunner$$anonfun$10.apply(Executor.scala:408)
at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1360)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:414)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
anaconda
?
pyarrow
它工作得很好,但在尝试与 spark
一起使用时就不行了。
# test
import numpy as np
import pandas as pd
import pyarrow as pa
df = pd.DataFrame({'one': [20, np.nan, 2.5],'two': ['january', 'february', 'march'],'three': [True, False, True]},index=list('abc'))
table = pa.Table.from_pandas(df)
最佳答案
在 EMR 中,python3 默认不解析。你必须让它明确。一种方法是通过 config.json
创建集群时的文件。它在 Edit software settings
中可用AWS EMR UI 中的部分。一个示例 json 文件看起来像这样。
[
{
"Classification": "spark-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"PYSPARK_PYTHON": "/usr/bin/python3"
}
}
]
},
{
"Classification": "yarn-env",
"Properties": {},
"Configurations": [
{
"Classification": "export",
"Properties": {
"PYSPARK_PYTHON": "/usr/bin/python3"
}
}
]
}
]
pyarrow
模块安装在所有核心节点,而不仅仅是主节点。为此,您可以在 AWS 中创建集群时使用引导脚本。同样,示例引导脚本可以像这样简单:
#!/bin/bash
sudo python3 -m pip install pyarrow==0.13.0
关于apache-spark - AWS EMR - ModuleNotFoundError : No module named 'pyarrow' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57315030/
当我确定源数据在 S3 中并且处理的结果将存储在 S3 中时,是否可以使用主节点和一组任务(从属)节点(没有核心节点)构建 AWS EMR。 基本上,问题是“当 EMR 将在 S3 中处理数据时,需要
我正在使用 aws .net sdk 向 EMR 运行 s3distcp 作业,以使用 --groupBy arg 连接文件夹中的所有文件。但是无论我尝试过什么“groupBy”arg,它总是失败,或
我刚刚建立了一个内置 Spark、JupyterHub 等的 EMR 集群。我可以通过 http://master_hostname:9443/hub/login 访问 Jupyter Noteboo
我正在 S3 上运行一个超过 500 个文档的示例 hadoop 作业,在本地运行时需要 <15 分钟才能完成。然而,当我尝试在 EMR 上运行相同的作业时,需要两个多小时,但仍然没有完成缩减步骤,因
是否可以将 Presto 解释器添加到 AWS EMR 4.3 上的 Zeppelin,如果可以,有人可以发布说明吗?我在 EMR 上运行 Presto-Sandbox 和 Zeppelin-Sand
AWS Stepfunctions 最近添加了 EMR 集成,这很酷,但我找不到将变量从步骤函数传递到 addstep 参数的方法。例如,我想将“$.dayid”变量传递给“Parameters”>“
例如,我有两个Hive作业,其中一个作业的输出用作第二个作业的参数/变量。我可以在终端上成功运行以下命令,以在EMR集群的主节点上获得结果。 [hadoop@ip-10-6-131-223 ~]$ h
我有一个非常初学者的问题。我刚刚阅读了一些有关 Amazon EMR 的文档。在我注册之前,我只是想询问一下如何在其中使用 R。 我有一个 R 模块,它调用其他几个模块,然后,在它完成运行之前,将几个
我在从运行 Spark 的 AWS EMR 集群连接到另一个运行 presto 的 AWS EMR 集群时遇到问题。 用 python 编写的代码是: jdbcDF = spark.read \
我正在努力解决这个问题,但无法弄清楚为什么 我有一个要部署在 AWS 私有(private)子网中的 EMR 集群。 我检查了文档 here . 根据以上内容,我明白了以下几点: 一个。对于我的 EM
我有一个 EMR 集群 response = emr_client.run_job_flow( Name="Test dashboards", ReleaseLabel='emr-6.
我在使用 hadoop 时使用了 MultipleInputs 。因为我有多个映射器分配给不同的输入。我想知道 EMR 是否也支持它。 在hadoop中我是这样操作的。这些是我的不同文件的映射器。在这
我是 PySpark 和 EMR 的新手。 我试图通过 Jupyter notebook 访问在 EMR 集群上运行的 Spark,但遇到了错误。 我正在使用以下代码生成 SparkSession:
我正在尝试将我的 Glue 目录连接到 EMR 中的 Presto 和 Hive。在 presto-cli 中运行查询时,我收到 NullPointerException 而相同的查询在 hive-c
我正在使用 MRJob 在 Amazon 的 EMR 上运行一个迭代的 hadoop 程序。 当我不使用“--pool-emr-job-flows”选项时,一切正常(但速度很慢)。当我使用这个选项时,
我有一个 DynamoDB 表,我需要连接到 EMR Spark SQL 以在该表上运行查询。我得到了带有发布标签 emr-4.6.0 和 Spark 1.6.1 的 EMR Spark Cluste
我的团队在 AWS 中工作,我们有 python 脚本,可以将文件从 S3 存储桶移动到 EC2 实例。我想用我们正在使用的脚本作为序言,它在直接从 ec2 实例运行时有效,并且仅在作为 EMR 步骤
我有 Airflow 作业,它们在 EMR 集群上运行良好。我需要的是,假设我有 4 个 Airflow 作业需要 EMR 集群,假设 20 分钟才能完成任务。为什么我们不能在 DAG 运行时创建一个
我正在 AWS 中创建一个数据管道来运行 Pig 任务。但是我的 Pig 任务需要 EMR 中的附加文件。在创建集群之后和运行 pig tasked 之前,我如何告诉 Data Pipeline 将文
如何在 EMR 上设置 Spark Thrift 服务器?我正在尝试使用 Spark Thrift 服务器与 EMR 建立 JDBC/ODBC 连接。例如 直线> !connect jdbc:hive
我是一名优秀的程序员,十分优秀!