0

我在尝试从 Aws Glue Etl 执行 aws 示例时遇到问题 - 在本地

阅读所有这些步骤后: https ://docs.aws.amazon.com/glue/latest/dg/dev-endpoint-tutorial-local-notebook.html

并将我的端点创建为 aws 胶水。当我尝试执行此代码时:

%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

在此处输入图像描述

4

2 回答 2

2

你好终于我在这里得到答案

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

感谢大家的帮助

问候

于 2019-04-24T10:09:59.297 回答
0

你的意思是说代码之前工作过,并且已经停止工作?抱歉无法正确解释。

参考使用Zeppelin进行本地开发,能否确认一下配置是否正确,是否开启了ssh隧道等?你可能需要做一些配置。Zeppelin->Spark 解释器等的变化。

请确保您已使用 SSH 隧道连接到 AWS Glue DEP。以下是一些可能对您有所帮助的参考资料。看起来您的 zeppelin 无法获得 GlueContext(我没有看到正在创建的 glueconext 对象?)

# Create a Glue context
glueContext = GlueContext(SparkContext.getOrCreate())

有关配置本地 zeppelin 环境的任何帮助,请参阅此链接,在 windows 上设置zeppelin。

于 2019-04-02T05:15:10.950 回答