我试图在本地执行Aws Glue Etl的aws示例时遇到问题
在阅读完所有这些步骤后:https://docs.aws.amazon.com/glue/latest/dg/dev-endpoint-tutorial-local-notebook.html
并将我的端点创建为aws glue。当我尝试执行此代码时:
%pyspark
import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
# sc = SparkContext()
#glueContext = GlueContext(sc)
glueContext = GlueContext(SparkContext.getOrCreate())
spark = glueContext.spark_session
persons = glueContext.create_dynamic_frame.from_catalog(
database="sampledb",
table_name="avro_avro_files"
)
print(persons.count())
persons.printSchema()
我有这个错误:
File "/usr/share/aws/glue/etl/python/PyGlue.zip/awsglue/__init__.py", line 13, in <module>
from dynamicframe import DynamicFrame
ImportError: No module named 'dynamicframe'
我不知道如何解决这个问题
我在本地有zeppeling0.7.3配置。
以前显示的代码的想法是,得到这个结果:
2019-04-01 11:37:22 INFO avro-test-bo: Test log message
Count: 5
root
|-- name: string
|-- favorite_number: int
|-- favorite_color: string
你的意思是说代码工作得更早,并且已停止工作了吗?抱歉无法正确解读。
关于使用Zeppelin的本地开发,请您确认配置是否正确,并启用了ssh隧道等?您可能需要进行一些配置。 Zeppelin-> Spark解释器等的变化
请确保使用SSH隧道连接到AWS Glue DEP。以下是一些可能对您有帮助的参考资料。看起来你的zeppelin无法获得GlueContext(我没有看到创建的glueconext对象?)
# Create a Glue context
glueContext = GlueContext(SparkContext.getOrCreate())
有关配置本地zeppelin环境的任何帮助,请参阅此linke,setting up zeppelin on windows。
你好,我终于得到了答案
问题是当我创建我的端点时,我只是在专用网络上创建它。在使用公共网络创建新端点之后。这个错误已经解决了。
感谢大家的帮助
问候