java - Spark从cassandra获取ttl列

标签 java apache-spark cassandra

我正在尝试从 cassandra 获取 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();

最佳答案

来自 Spark-cassandra-connector 文档:

The select method allows querying for TTL and timestamp of the table cell.

Example Using Select to Retreive TTL and Timestamp

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

The selected columns can be given aliases by calling as on the column selector, which is particularly handy when fetching TTLs and timestamps.

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

关于java - Spark从cassandra获取ttl列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55259169/

相关文章:

Java Web 应用程序属性

scala - Apache Spark-从Elasticsearch加载数据太慢

python - Spark 数据框不添加具有空值的列

java - 有什么方法可以在 cassandra 中实现无状态分页吗?

java - JSP中刷新进度条

java - GWT 替代电池

python - 正确读取 PySpark 中文件的类型

java - 尝试使用 cassandra 数据存储从 eclipse 运行 nutch 时出现 java.lang.NullPointerException

java - cqlsh:如何跳过结果集中的前几行

java - 如何使用 Kyro 序列化 Exception 对象?