我需要定期将C *表中的行/冷库存储到CSV。例如:将2016年1月 - 6月的C *表my_table中的行导出为CSV my_table.2016_06-30.csv,将my_table中的2016年7月 - 2016年7月的行导出到my_table.2016-12-31.csv,依此类推。
我认为CQL是这样做的,但并非我的所有表都为我的行设置了时间戳列。有人建议我使用Spark Dataframes来实现这一点(所以我可以使用来自Spark Cassandra Connector的writeTime等元数据)。
我是Spark Cassandra Connector的新手,也是Spark的用途。
有人能指出一个很好的例子,说明如何将一个Cassandra Dataframe写入CSV,我在writeTime上“过滤”Dataframe还是类似的东西?
提前感谢任何帮助,指导等。
答案 0 :(得分:0)
表格:
CREATE TABLE myKeySpace.myTable (
id INTPRIMARY KEY,
name TEXT)
做的:
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");
我确实在DataStax JIRA上看到writeTime
对DataFrames
的{{1}}支持的一些旧任务,尤其是GitHub上的PR。目前还不清楚writeTime
是否可用于加载和写入DF。