Spark получить колонку TTL от Кассандры - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь получить столбец ttl от Кассандры, но пока не могу заставить его работать.

Вот то, что я пытался до сих пор:

SparkSession sparkSession = SparkSession.builder()
        .appName("Spark Sql Job").master("local[*]")
        .config("spark.sql.warehouse.dir", "file:///c:/tmp/spark-warehouse")
        .config("spark.cassandra.connection.host", "localhost")
        .config("spark.cassandra.connection.port", "9042")
        .getOrCreate();

SQLContext sqlCtx = sparkSession.sqlContext(); 

Dataset<Row> rowsDataset = sqlCtx.read()
        .format("org.apache.spark.sql.cassandra")
        .option("keyspace", "myschema")
        .option("table", "mytable").load();

rowsDataset.createOrReplaceTempView("xyz");   
rowsDataset = sparkSession.sql("select ttl(emp_phone) from vouchers");   
rowsDataset.show();

1 Ответ

2 голосов
/ 20 марта 2019

Из документа искр-кассандра-разъем:

Метод выбора позволяет запрашивать TTL и метку времени ячейки таблицы.

Пример использования Select для получения TTL и отметки времени

val row = rdd.select("column", "column".ttl, "column".writeTime).first
val ttl = row.getLong("ttl(column)")
val timestamp = row.getLong("writetime(column)")       

Выбранным столбцам можно присвоить псевдонимы, вызвав как столбец селектор, который особенно удобен при получении TTL и метки времени.

https://github.com/datastax/spark-cassandra-connector/blob/master/doc/3_selection.md

...