Uso de tablas de Apache Hudi en Athena para Spark
Apache Hudi
Para usar las tablas de Apache Hudi en Athena para Spark, configure las siguientes propiedades de Spark. Estas propiedades se configuran de forma predeterminada en la consola Athena para Spark cuando elige Apache Hudi como formato de tabla. Para ver los pasos, consulte Paso 4: editar los detalles de la sesión o Paso 7: crear su propio cuaderno.
"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"
En el siguiente procedimiento, se muestra cómo utilizar una tabla de Apache Hudi en un cuaderno de Athena para Spark. Ejecute cada paso en una nueva celda del cuaderno.
Para usar una tabla de Apache Hudi en Athena para Spark
-
Defina las constantes que se utilizarán en el cuaderno.
DB_NAME = "
NEW_DB_NAME
" TABLE_NAME = "NEW_TABLE_NAME
" TABLE_S3_LOCATION = "s3://amzn-s3-demo-bucket" -
Cree un DataFrame
de Apache Spark. columns = ["language","users_count"] data = [("Golang", 3000)] df = spark.createDataFrame(data, columns)
-
Cree una base de datos.
spark.sql("CREATE DATABASE {} LOCATION '{}'".format(
DB_NAME
,TABLE_S3_LOCATION
)) -
Cree una tabla de Apache Hudi vacía.
spark.sql(""" CREATE TABLE {}.{} ( language string, users_count int ) USING HUDI TBLPROPERTIES ( primaryKey = 'language', type = 'mor' ); """.format(
DB_NAME
,TABLE_NAME
)) -
Inserte una fila de datos en la tabla.
spark.sql("""INSERT INTO {}.{} VALUES ('Golang', 3000)""".format(
DB_NAME
,TABLE_NAME
)) -
Confirme que puede consultar la nueva tabla.
spark.sql("SELECT * FROM {}.{}".format(
DB_NAME
,TABLE_NAME
)).show()