Usar tabelas do Apache Hudi no Athena para Spark
O Apache Hudi
Para usar tabelas do Apache Hudi no Athena para Spark, configure as propriedades do Spark a seguir. Essas propriedades são configuradas por padrão no console do Athena para Spark quando você escolhe Apache Hudi como formato de tabela. Para obter as etapas, consulte Etapa 4: editar detalhes de sessões ou Etapa 7: criar seu próprio caderno.
"spark.sql.catalog.spark_catalog": "org.apache.spark.sql.hudi.catalog.HoodieCatalog", "spark.serializer": "org.apache.spark.serializer.KryoSerializer", "spark.sql.extensions": "org.apache.spark.sql.hudi.HoodieSparkSessionExtension"
O procedimento a seguir mostra como usar uma tabela do Apache Hudi em um caderno do Athena para Spark. Execute cada etapa em uma nova célula no caderno.
Para usar tabelas do Apache Hudi no Athena para Spark
-
Defina as constantes a serem usadas no caderno.
DB_NAME = "
NEW_DB_NAME
" TABLE_NAME = "NEW_TABLE_NAME
" TABLE_S3_LOCATION = "s3://amzn-s3-demo-bucket" -
Crie um DataFrame
do Apache Spark. columns = ["language","users_count"] data = [("Golang", 3000)] df = spark.createDataFrame(data, columns)
-
Crie um banco de dados.
spark.sql("CREATE DATABASE {} LOCATION '{}'".format(
DB_NAME
,TABLE_S3_LOCATION
)) -
Crie uma tabela vazia do Apache Hudi.
spark.sql(""" CREATE TABLE {}.{} ( language string, users_count int ) USING HUDI TBLPROPERTIES ( primaryKey = 'language', type = 'mor' ); """.format(
DB_NAME
,TABLE_NAME
)) -
Insira uma linha de dados na tabela.
spark.sql("""INSERT INTO {}.{} VALUES ('Golang', 3000)""".format(
DB_NAME
,TABLE_NAME
)) -
Confirme se é possível consultar a nova tabela.
spark.sql("SELECT * FROM {}.{}".format(
DB_NAME
,TABLE_NAME
)).show()