insert into sys.new_table select id + (select max(id) from sys.Old_table),name from sys.Old_table;
通过这种方式,我们可以insert
Oracle
从Cassandra
中的一个表到另一个表的数据。如何在Old_table
ID,Case Number,Date
8534426,HV210935,03/19/2012 12:00:00 PM
8534427,HV210768,12/16/2011 04:30:00 AM
?
insert
如何new_table
使用new_table.ID = Max(Old_table.ID)+Old_table.ID
将Old_table
数据导入Cassandra
,使用mysql
将数据导入new_table
ID,Case Number,Date
8534428,HV210935,03/19/2012 12:00:00 PM
8534429,HV210768,12/16/2011 04:30:00 AM
的其他数据?我可以使用Spark
中的上述语法进行插入。
index.html
如果可以使用<img src="images/image.jpg">
解决此问题,请建议我。
答案 0 :(得分:0)
这可以使用spark-cassandra连接器完成。
要做的基本事情。
从oldTable获取数据。
从数据框中获取最大ID
使用旧数据框创建新数据框。注意.withColumn
应具有相同的列名id
使用scala的示例代码:
val oldTable = sc.read.formt("org.apache.spark.sql.cassandr")
.options(Map("keyspace"->"sys","table"->"Old_table"))
.load()
val maxId = oldTable.select(max("id")).collect()(0).getAs[Int](0)
val newTable = oldTable.withColumn("id",lit(maxId).plus(col("id")))
newTable.write.format("org.apache.spark.sql.cassandr")
.options(Map("keyspace"->"sys","table"->"new_table"))
.save()
这只是一个示例代码,其中sc是SQLContext / HiveContext。
根据您的数据大小,您可以在.cache()
等上使用oldTable
根据您的要求修改代码。