Paso 5: Escribir y leer datos en Amazon Keyspaces utilizando Apache Cassandra Spark Connector - Amazon Keyspaces (para Apache Cassandra)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Paso 5: Escribir y leer datos en Amazon Keyspaces utilizando Apache Cassandra Spark Connector

En este paso, usted comienza cargando los datos del archivo de ejemplo en un DataFrame con Spark Cassandra Connector. A continuación, escribe los datos del DataFrame en su tabla de Amazon Keyspaces. También puede utilizar esta parte de forma independiente, por ejemplo, para migrar datos a una tabla de Amazon Keyspaces. Por último, lea los datos de su tabla en un DataFrame con Spark Cassandra Connector. También puede utilizar esta parte de forma independiente, por ejemplo, para leer datos de una tabla de Amazon Keyspaces para realizar análisis de datos con Apache Spark.

  1. Inicie el intérprete de comandos de Spark como se muestra en el siguiente ejemplo. Tenga en cuenta que en este ejemplo se utiliza la autenticación SigV4.

    ./spark-shell --files application.conf --conf spark.cassandra.connection.config.profile.path=application.conf --packages software.aws.mcs:aws-sigv4-auth-cassandra-java-driver-plugin:4.0.5,com.datastax.spark:spark-cassandra-connector_2.12:3.1.0 --conf spark.sql.extensions=com.datastax.spark.connector.CassandraSparkExtensions
  2. Importe Spark Cassandra Connector con el siguiente código.

    import org.apache.spark.sql.cassandra._
  3. Para leer los datos del CSV archivo y almacenarlos en unDataFrame, puede usar el siguiente ejemplo de código.

    var df = spark.read.option("header","true").option("inferSchema","true").csv("keyspaces_sample_table.csv")

    Puede visualizar el resultado con el siguiente comando.

    scala> df.show();

    La salida debería ser similar a la siguiente.

    +----------------+----+-----------+----+------------------+--------------------+-------------+ | award|year| category|rank| author| book_title| publisher| +----------------+----+-----------+----+------------------+--------------------+-------------+ |Kwesi Manu Prize|2020| Fiction| 1| Akua Mansa| Where did you go?|SomePublisher| |Kwesi Manu Prize|2020| Fiction| 2| John Stiles| Yesterday|Example Books| |Kwesi Manu Prize|2020| Fiction| 3| Nikki Wolf|Moving to the Cha...| AnyPublisher| | Wolf|2020|Non-Fiction| 1| Wang Xiulan| History of Ideas|Example Books| | Wolf|2020|Non-Fiction| 2|Ana Carolina Silva| Science Today|SomePublisher| | Wolf|2020|Non-Fiction| 3| Shirley Rodriguez|The Future of Sea...| AnyPublisher| | Richard Roe|2020| Fiction| 1| Alejandro Rosalez| Long Summer|SomePublisher| | Richard Roe|2020| Fiction| 2| Arnav Desai| The Key|Example Books| | Richard Roe|2020| Fiction| 3| Mateo Jackson| Inside the Whale| AnyPublisher| +----------------+----+-----------+----+------------------+--------------------+-------------+

    Puede confirmar el esquema de los datos en el DataFrame como se muestra en el siguiente ejemplo.

    scala> df.printSchema

    La salida debería tener este aspecto.

    root |-- award: string (nullable = true) |-- year: integer (nullable = true) |-- category: string (nullable = true) |-- rank: integer (nullable = true) |-- author: string (nullable = true) |-- book_title: string (nullable = true) |-- publisher: string (nullable = true)
  4. Utilice el siguiente comando para escribir los datos del DataFrame en la tabla de Amazon Keyspaces.

    df.write.cassandraFormat("book_awards", "catalog").mode("APPEND").save()
  5. Para confirmar que los datos se hayan guardado, puede volver a leerlos en un marco de datos, como se muestra en el siguiente ejemplo.

    var newDf = spark.read.cassandraFormat("book_awards", "catalog").load()

    A continuación, puede mostrar los datos que ahora contiene el marco de datos.

    scala> newDf.show()

    La salida de ese comando debería tener este aspecto.

    +--------------------+------------------+----------------+-----------+-------------+----+----+ | book_title| author| award| category| publisher|rank|year| +--------------------+------------------+----------------+-----------+-------------+----+----+ | Long Summer| Alejandro Rosalez| Richard Roe| Fiction|SomePublisher| 1|2020| | History of Ideas| Wang Xiulan| Wolf|Non-Fiction|Example Books| 1|2020| | Where did you go?| Akua Mansa|Kwesi Manu Prize| Fiction|SomePublisher| 1|2020| | Inside the Whale| Mateo Jackson| Richard Roe| Fiction| AnyPublisher| 3|2020| | Yesterday| John Stiles|Kwesi Manu Prize| Fiction|Example Books| 2|2020| |Moving to the Cha...| Nikki Wolf|Kwesi Manu Prize| Fiction| AnyPublisher| 3|2020| |The Future of Sea...| Shirley Rodriguez| Wolf|Non-Fiction| AnyPublisher| 3|2020| | Science Today|Ana Carolina Silva| Wolf|Non-Fiction|SomePublisher| 2|2020| | The Key| Arnav Desai| Richard Roe| Fiction|Example Books| 2|2020| +--------------------+------------------+----------------+-----------+-------------+----+----+