Fen*_*tik 6 python pyspark aws-glue
我最近安装了 python 3.7 并尝试使用 pyspark,我需要创建
\n\n glueContext = GlueContext(SparkContext.getOrCreate())\n sparkSession = glueContext.spark_session\nRun Code Online (Sandbox Code Playgroud)\n\n为此,当我导入库时,它只是找不到动态框架
\n\n当我尝试导入时awsglue.context import GlueContext出现以下错误
from awsglue.context import GlueContext\nTraceback (most recent call last):\n File "<stdin>", line 1, in <module>\n File "/usr/local/lib/python3.7/site-packages/awsglue/__init__.py", line 13, in <module>\n from dynamicframe import DynamicFrame\nModuleNotFoundError: No module named \'dynamicframe\'\nRun Code Online (Sandbox Code Playgroud)\n\n即使这个也失败了
\n\nfrom awsglue.transforms import *\nTraceback (most recent call last):\n File "<stdin>", line 1, in <module>\n File "/usr/local/lib/python3.7/site-packages/awsglue/__init__.py", line 13, in <module>\n from dynamicframe import DynamicFrame\nModuleNotFoundError: No module named \'dynamicframe\'\nRun Code Online (Sandbox Code Playgroud)\n\nPyspark模块导入好像没有问题from pyspark.context import SparkContext
没有关于如何设置所需库的适当文档。
\n\n下的文件夹结构 /usr/local/lib/python3.7/site-packages/awsglue
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __pycache__\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.cpython-37.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 context.cpython-37.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 data_sink.cpython-37.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 data_source.cpython-37.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 functions.cpython-37.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 gluetypes.cpython-37.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 job.cpython-37.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 utils.cpython-37.pyc\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 context.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 data_sink.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 data_source.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 devutils.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dynamicframe.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 functions.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 gluetypes.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 job.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 transforms\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __pycache__\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.cpython-37.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 apply_mapping.cpython-37.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 collection_transforms.cpython-37.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dynamicframe_filter.cpython-37.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dynamicframe_map.cpython-37.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 errors_as_dynamicframe.cpython-37.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 field_transforms.cpython-37.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 relationalize.cpython-37.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 resolve_choice.cpython-37.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 transform.cpython-37.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 unbox.cpython-37.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 unnest_frame.cpython-37.pyc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 apply_mapping.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 collection_transforms.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 drop_nulls.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dynamicframe_filter.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dynamicframe_map.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 errors_as_dynamicframe.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 field_transforms.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 relationalize.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 resolve_choice.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 transform.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 unbox.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 unnest_frame.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 utils.py\nRun Code Online (Sandbox Code Playgroud)\n