AWS клей с афиной - PullRequest
       1

AWS клей с афиной

0 голосов
/ 16 марта 2020

Мы находимся в фазе, когда мы переносим все наши искровые работы, написанные в scala на aws клей.

Текущий поток: Apache Улей -> Искра (Обработка / Преобразование) -> Apache Улей -> BI

Требуемый поток: AWS S3 (Афина) -> Aws Клей (Spark Scala -> Обработка / Трансформация) -> AWS S3 -> Афина -> BI

TBH Я получил это задание вчера, и я выполняю НИОКР на нем. Мои вопросы:

  1. Можем ли мы запустить тот же код в apache клею, поскольку он имеет динамический c кадр, который может быть преобразован в кадры данных, но требует изменений в коде.
  2. Может мы читаем данные из aws Афины, используя Spark sql API в aws клей, как мы обычно делаем в Spark.

Ответы [ 2 ]

1 голос
/ 24 апреля 2020

Aws клей расширяет возможности Apache Spark. Следовательно, вы всегда можете использовать свой код как есть.

Единственное, что вам нужно сделать, - это изменить создание переменной сеанса и обеспечить анализ аргументов. Вы можете запустить простой старый код pyspark, даже не создавая динамические c фреймы.

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()

И он также поддерживает spark sql поверх каталога клея.

Надеюсь, это поможет

0 голосов
/ 16 марта 2020

Я могу запустить свой текущий код с небольшими изменениями. я построил sparkSession и использую этот сеанс для запроса таблицы каталога с включенным клеевым кустом. нам нужно добавить этот параметр в нашу работу - enable-glue-datacatalog

SparkSession.builder().appName("SPARK-DEVELOPMENT").getOrCreate()
var sqlContext = a.sqlContext
sqlContext.sql("use default")
sqlContext.sql("select * from testhive").show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...