如何使用Spark Dataframe将行从C *导出到CSV文件
问题描述:
我需要定期将C *表的行存档/冷存到CSV。例如:将2016年1月 - 6月的C *表my_table中的行导出为CSV my_table.2016_06-30.csv,将2016年7月至12月的行在my_table中导出为my_table.2016-12-31.csv,依此类推。如何使用Spark Dataframe将行从C *导出到CSV文件
我认为CQL可以做到这一点,但并不是所有的表格都有我的行的时间戳列。有人建议我使用Spark Dataframes来做到这一点(所以我可以从Spark Cassandra Connector获取像writeTime这样的元数据)。
我是新来的Spark Cassandra连接器和这种Spark使用。
任何人都可以点我如何写一个Cassandra Dataframe到CSV的好例子,我在writeTime上过滤数据帧或类似的东西?
在此先感谢您的帮助,指导等
答
对于表:
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
,特别是在GitHub上的这个PR。目前还不清楚writeTime
是否可用于加载和写入DF。