如果我查看Imapala Shell或Hue,我可以为KUDU编写足够复杂的IMPALA更新语句。例如。用子选择更新,什么不用。细
通过SPARK / SCALA查看mySQL的旧JDBC连接方法,通过这种连接进行复杂更新的可能性很小,这是可以理解的。但是,对于KUDU,我认为情况会发生变化。
查看有关KUDU的文档 - Apache KUDU - 使用Apache KUDU开发应用程序,以下是以下问题:
在SPARK KUDU Native模式下,DML似乎与INSERT和UPSERT的数据帧方法相关联。如果我只想写一个像UPDATE这样的自由格式SQL DML语句怎么办?我看到我们可以使用Spark SQL INSERT(默认情况下将其视为UPSERT)到Kudu表中。 E.g。
sqlContext.sql(s"INSERT INTO TABLE $kuduTableName SELECT * FROM source_table")
答案 0 :(得分:0)
这方面的文件很糟糕。
DML插入,更新,......可以通过"方法"下面是一些例子:
stmt.execute("update KUDU_1 set v = 'same value' where k in ('1', '4') ;")
stmt.execute("insert into KUDU_1 select concat(k, 'ABCDEF'), 'MASS INSERT' from KUDU_1 ;")
如果使用相应的stmt.executequery返回Java结果集,那么唯一的事情就是从JDBC源读取并保持结果的更标准方法不同。这对我来说有点意外。可能需要2种方法,一种用于更常规的选择,一种用于非选择的DML。不确定是否可以在同一个程序模块中。再过一次。是的,它可以。