0
0
Aws Glueローカル開発環境の構築内容
▪️image
aws-glue-libs:glue_libs_3.0.0_image_01
▪️開発環境
mac ノート
vscode を使いたい
▪️vscode の変更箇所
Dec Containers の拡張機能追加
これに伴う json ファイルの修正
docker
1docker run -e AWS_ACCESS_KEY_ID="⚫️⚫️⚫️⚫️⚫️⚫️⚫️⚫️⚫️⚫️" \ 2 -e AWS_SECRET_ACCESS_KEY="⚫️⚫️⚫️⚫️⚫️⚫️⚫️⚫️⚫️⚫️" \ 3 -e AWS_DEFAULT_REGION="ap-northeast-1" \ 4 -itd -v ~/.aws:/home/glue_user/.aws -v $WORKSPACE_LOCATION:/home/glue_user/workspace/ \ 5 -e AWS_PROFILE=$PROFILE_NAME \ 6 -e DISABLE_SSL=true --rm -p 4040:4040 -p 18080:18080 --name glue_pyspark \ 7 amazon/aws-glue-libs:glue_libs_3.0.0_image_01 pyspark
spark
1import sys 2from pyspark.context import SparkContext, SparkConf ←修正 3from awsglue.context import GlueContext 4from awsglue.job import Job 5from awsglue.utils import getResolvedOptions 6 7 8class GluePythonSampleTest: 9 def __init__(self): 10 params = [] 11 if '--JOB_NAME' in sys.argv: 12 params.append('JOB_NAME') 13 args = getResolvedOptions(sys.argv, params) 14 15 # args = {} 16 # args["format_options"] = {"quoteChar":"\"","escaper":"","withHeader":True,"separator":","} 17 # args["connection_type"] = "s3" 18 # args["format"] = "csv" 19 # args["connection_options"] = {"paths": ["s3://★★★★/★★★★/input/"], "recurse":True} 20 # args["transformation_ctx"] = "DataSource0" 21 22 23 conf = SparkConf().set("spark.ui.port","4041") ←修正 24 sc = SparkContext.getOrCreate(conf=conf) ←修正 25 self.context = GlueContext(sc) ←修正 26 # self.context = GlueContext(SparkContext.getOrCreate()) 27 28 self.job = Job(self.context) 29 30 if 'JOB_NAME' in args: 31 jobname = args['JOB_NAME'] 32 else: 33 jobname = "test" 34 self.job.init(jobname, args) 35 36 def run(self): 37 dyf = read_json(self.context, "s3://★★★★/★★★★/order_data_1/sample1.csv") 38 dyf.printSchema() 39 40 self.job.commit() 41 42 43def read_json(glue_context, path): 44 dynamicframe = glue_context.create_dynamic_frame.from_options( 45 connection_type='s3', 46 connection_options={ 47 'paths': [path], 48 'recurse': True 49 }, 50 format='csv' 51 ) 52 return dynamicframe 53 54 55if __name__ == '__main__': 56 GluePythonSampleTest().run() 57
エラーが解決できません
最初は、下記エラーた出たのでSparkConf を修正
Service 'SparkUI' could not bind on port 4040. Attempting port 4041
このエラーは出なくなりました
⇨上の spark 修正
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
その後
下記エラーが出ましたが、解決できません
SLF4J: Class path contains multiple SLF4J bindings
解決方法もある様ですが、image を使っているので
修正方法がわかりません 参考ページ 。゚(T^T)゚。゚
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
このエラーの解決方法でなくても問題ございません
aws glue のjob を動かすローカル開発環境の構築方法を
ご教授いただけますでしょうか?
よろしくお願いいたします v(。-_-。)v
回答2件
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。