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

时间:2019-04-01 12:44:05

标签: pyspark aws-glue glue aws-glue-data-catalog

在尝试从本地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

enter image description here

2 个答案:

答案 0 :(得分:0)

您的意思是说代码在更早的时候已经工作,并且已经停止工作了吗?抱歉,无法正确解释。

关于使用Zeppelin进行本地开发,您能否确认配置是否正确以及是否已启用ssh隧道等?您可能需要进行一些配置。 Zeppelin-> Spark解释器等的更改。

请确保您已使用SSH隧道连接到AWS Glue DEP。以下是一些可能对您有帮助的参考。看起来您的齐柏林飞艇无法获取GlueContext(我看不到正在创建gelconconext对象吗?)

<DataGrid ItemsSource="{Binding Path=ItemsChildren}" SelectedItem="{Binding Path=ItemModel, Mode=TwoWay}" Grid.Row="3" Grid.ColumnSpan="2" Margin="10" AutoGenerateColumns="False" AlternatingRowBackground="Gray" CanUserAddRows="False" HorizontalAlignment="Stretch">

有关配置本地齐柏林飞艇环境的任何帮助,请参考此链接setting up zeppelin on windows

答案 1 :(得分:0)

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

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

感谢大家的帮助

致谢