0
나는이 dB 나는 다음과 같은 경우 클래스 구조가 여러 행 보유 스파크 dataframe 저장하기 위해 노력하고있어스파크 dataframe 자동 증가 열이 SQL 테이블에 저장
+----------------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+------------+------+-----+---------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| VERSION | bigint(20) | NO | | NULL | |
| user_id | bigint(20) | NO | MUL | NULL | |
| measurement_id | bigint(20) | NO | MUL | NULL | |
| day | timestamp | NO | | NULL | |
| hour | tinyint(4) | NO | | NULL | |
| hour_timestamp | timestamp | NO | | NULL | |
| value | bigint(20) | NO | | NULL | |
+----------------+------------+------+-----+---------+----------------+
에 다음과 같은 테이블 :
을dataFrame.insertIntoJDBC(...)
내가 얻을 : 내가 사용 JDBC 드라이버를 통해 내 SQL에 dataframe을 저장하기 위해 노력하고있어
case class Record(val id : Int,
val VERSION : Int,
val user_id : Int,
val measurement_id : Int,
val day : Timestamp,
val hour : Int,
val hour_timestamp : Timestamp,
val value : Long )
기본 키 위반 오류가 :
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '1' for key 'PRIMARY'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
나는 모든 행의 기본 값으로 ID = 0을 설정하려고하지 않으며 또한 케이스 클래스에서 id 필드를 제거하려하지도했다.
아무도 도와 줄 수 있습니까?
덕분에, 토 메르
첫 번째 레코드가 유일한 복제본입니까? –