我们正处于将所有用scala编写的星火作业迁移到aws胶水的阶段。
当前流: Apache Hive -> Spark(处理/转换) -> Apache Hive -> BI
必需流程: AWS S3 (雅典娜) -> Aws Glue(火花Scala ->处理/转换) -> AWS S3 ->雅典娜-> BI
昨天我完成了这个任务,我正在做研发工作。我的问题是:
发布于 2020-03-16 18:00:35
我能够运行我的当前代码与小的变化。我已经构建了sparkSession,并使用该会话来查询启用了胶水的目录表。我们需要在作业--enable-glue-datacatalog中添加这个参数
SparkSession.builder().appName("SPARK-DEVELOPMENT").getOrCreate()
var sqlContext = a.sqlContext
sqlContext.sql("use default")
sqlContext.sql("select * from testhive").show()发布于 2020-04-24 04:43:53
Aws胶水扩展了Apache的功能。因此,您可以始终按原样使用代码。
唯一需要做的更改是更改会话变量的创建和所提供参数的解析。您甚至不需要创建动态框架就可以运行普通的旧式电火花代码。
def createSession():
sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
job = Job(glueContext)
return sc, glueContext, spark, job
#To handle the arguments
args = getResolvedOptions(sys.argv, ['JOB_NAME', 'arg1', 'arg2'])
arg1 = args['arg1'].split(',')
arg2 = args['arg2'].strip()
#To initialize the job
job.init(args['JOB_NAME'], args)
#your code here
job.commit()它还支持星星之火sql而不是胶水目录。
希望它能帮上忙
https://stackoverflow.com/questions/60705430
复制相似问题