2

Je dois archiver périodiquement/stocker au froid des lignes de tables C * au format CSV. Par exemple: exporter les lignes de Jan-Jun 2016 dans la table C * my_table vers un CSV my_table.2016_06-30.csv, exporter les lignes de Jul-Dec 2016 dans my_table vers my_table.2016-12-31.csv, et ainsi de suite.Comment utiliser les Spark Dataframes pour exporter des lignes de fichiers C * vers CSV?

J'ai considéré que CQL faisait cela, mais toutes mes tables n'ont pas de colonnes d'horodatage pour mes lignes. Il a été suggéré que j'utilise Spark Dataframes pour faire cela (donc je peux, obtenir des métadonnées comme writeTime disponible à partir du Spark Cassandra Connector). Je ne connais pas le connecteur Spark Cassandra et ce genre d'utilisation Spark. Est-ce que quelqu'un peut me montrer un bon exemple de comment écrire une Cassandra Dataframe à un CSV, où je filtre le Dataframe sur writeTime ou quelque chose comme ça?

Merci à l'avance pour toute aide, des conseils, etc.

Répondre

0

Pour une table:

CREATE TABLE myKeySpace.myTable (
id INTPRIMARY KEY, 
name TEXT) 

do:

case class SimpleTable(id: Int, name: String, name_writeTime: Long) 

val df = sc.cassandraTable[SimpleTable]("saitejal", "mysql_import") 
      .select("id", "name", "name".writeTime as "name_writeTime") 
      .toDF 

# Do filtering as needed 

df.select("id", "name").write() 
    .format("com.databricks.spark.csv") 
    .option("header", "true") 
    .save("backup_all.csv"); 

Je vois des anciennes tâches sur DataStax JIRA en ce qui concerne le soutien writeTime pour DataFrames, en particulier ce PR sur GitHub. On ne sait pas si writeTime est disponible pour le chargement et l'écriture des DF.