【发布时间】:2021-02-17 14:18:41
【问题描述】:
我正在关注这个教程视频:https://www.youtube.com/watch?v=EzQArFt_On4
本视频中提供的示例代码:
from awsglue.utils import getResolvedOptions
from awsglue.context import GlueContext
from awsglue.job import Job
from pyspark.context import SparkContext
glueContext = GlueContext(SparkContext.getOrCreate())
glueJob = Job(glueContext)
args = getResolvedOptions(sys.argv, ['JOB_NAME'])
glueJob.init(args['JOB_NAME'], args)
sparkSession = glueContext.spark_session
#ETL process code
def etl_process():
...
return xxx
glueJob.commit()
我想知道函数etl_process之前的部分是否可以直接用于生产?还是我需要将该部分包装到一个单独的函数中,以便为它添加单元测试?
像这样:
def define_spark_session():
sc = SparkContext.getOrCreate()
glue_context = GlueContext(sc)
glue_job = Job(glue_context)
args = getResolvedOptions(sys.argv, ['JOB_NAME'])
glue_job.init(args['JOB_NAME'], args)
spark_session = glue_context.spark_session
return spark_session
不过好像不需要参数...
或者我应该只为etl_process 函数编写单元测试?
或者我可以使用etl_process 函数创建一个单独的python 文件并将其导入此脚本中?
我是新手,有点困惑,请问有人可以帮忙吗?谢谢。
【问题讨论】:
标签: python amazon-web-services pyspark aws-glue production