Aws Glue Etl - 没有名为dynamicframe的模块

问题描述 投票:0回答:2

我试图在本地执行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

enter image description here

pyspark aws-glue glue aws-glue-data-catalog
2个回答
0
投票

你的意思是说代码工作得更早,并且已停止工作了吗?抱歉无法正确解读。

关于使用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


0
投票

你好,我终于得到了答案

问题是当我创建我的端点时,我只是在专用网络上创建它。在使用公共网络创建新端点之后。这个错误已经解决了。

感谢大家的帮助

问候

© www.soinside.com 2019 - 2024. All rights reserved.