Jdbc 在SparkR中使用phoenix在hbase中保存spark数据帧时出错

Jdbc 在SparkR中使用phoenix在hbase中保存spark数据帧时出错,jdbc,hbase,sparkr,phoenix,Jdbc,Hbase,Sparkr,Phoenix,我正在尝试使用phoenix将spark数据帧保存到hbase中。我能够从数据库中读取数据,但在尝试写入数据时遇到了问题 从test1读取数据 df_output <- read.jdbc(source="jdbc",url="jdbc:phoenix:azaupalphdoop02.ah.loc,azaupalphdoop03.ah.loc,azaupalphdoop04.ah.loc:2181:/hbaseunsecure",tableName="test1",driver="org.

我正在尝试使用phoenix将spark数据帧保存到hbase中。我能够从数据库中读取数据,但在尝试写入数据时遇到了问题

从test1读取数据

df_output <- read.jdbc(source="jdbc",url="jdbc:phoenix:azaupalphdoop02.ah.loc,azaupalphdoop03.ah.loc,azaupalphdoop04.ah.loc:2181:/hbaseunsecure",tableName="test1",driver="org.apache.phoenix.jdbc.PhoenixDriver")



showDF(df_output)

--------+-----+
|MEMBERID|MK_56|
+--------+-----+
|       1|    5|
+--------+-----+
printSchema(df_output)

root
 |-- MEMBERID: integer (nullable = false)
 |-- MK_56: integer (nullable = true)

write.jdbc(df_output,url="jdbc:phoenix:azaupalphdoop02.ah.loc,azaupalphdoop03.ah.loc,azaupalphdoop04.ah.loc:2181:/hbase-unsecure",tableName="test1",mode="append")
错误

java.sql.SQLException:错误517(42895):非主键列上的NOTNULL约束无效。columnName=TEST122.MEMBERID

覆盖-删除现有表并使用给定的数据帧创建新表

write.jdbc(df_output,url="jdbc:phoenix:azaupalphdoop02.ah.loc,azaupalphdoop03.ah.loc,azaupalphdoop04.ah.loc:2181:/hbase-unsecure",tableName="test",mode="overwrite")    
成功删除表,但无法创建新表

java.sql.SQLException:错误517(42895):非主键列上的NOTNULL约束无效。columnName=TEST122.MEMBERID


我假设架构存在一些问题,但我无法找到解决方案。

use upsert not insertUpsert也不工作org.apache.phoenix.exception.PhoenixParserException:ERROR 601(42P00):语法错误。在第1行第14列遇到“向上插入”。
write.jdbc(df_output,url="jdbc:phoenix:azaupalphdoop02.ah.loc,azaupalphdoop03.ah.loc,azaupalphdoop04.ah.loc:2181:/hbase-unsecure",tableName="test",mode="overwrite")