다음은 RDBMS에 연결하기 위해 작성한 코드입니다. 임시 테이블을 만들고, 임시 테이블에서 SQL 쿼리를 실행하고, SQL 쿼리 출력을 .csv 형식으로 저장합니다. through databricks 모듈.spark를 통해 기존 HIVE 이야기에 csv 파일로드
py4j.protocol.Py4JJavaError: An error occurred while calling o68.saveAsTable.
: java.lang.RuntimeException: Append mode is not supported by com.databricks.spark.csv.DefaultSource15
가 있음을합니까 : HIVE.DB가 HIVE.TBL 기존 하이브 DATABASE 입니다
from pyspark import SparkContext
sc = SparkContext("local", "Simple App")
from pyspark.sql import SQLContext, Row
sqlContext = SQLContext(sc)
from pyspark.sql import HiveContext
sqlContext = HiveContext(sc)
df = sqlContext.read.format("jdbc").option("url","jdbc:sqlserver://<server>:<port>").option("databaseName","xxx").option("driver","com.microsoft.sqlserver.jdbc.SQLServerDriver").option("dbtable","xxxx").option("user","xxxxx").option("password","xxxxx").load()
df.registerTempTable("test")
df1= sqlContext.sql("select * from test where xxx= 6")
df1.write.format("com.databricks.spark.csv").save("/xxxx/xxx/ami_saidulu")
df1.write.option("path", "/xxxx/xxx/ami_saidulu").saveAsTable("HIVE_DB.HIVE_TBL",format= 'csv',mode= 'Append')
내가 코드를 실행 한 후
, 나는 오류가 아래 얻고 기존 HIVE 표입니다 의미, databricks 모듈 "saveAsTable"함수를 지원하지 않습니다?
예인 경우 내 코드의 실수를 지적하십시오. 아니요, 그렇다면 솔루션/해결 방법/업계 표준은 무엇입니까?
스파크 1.6.1
하이브 테이블을 외부 또는 관리합니까? 사이에 CSV를 쓰는 이유가 있습니까, df.write.saveAsTable ('HIVE_DB.HIVE_TBL', write_mode = 'Append') 할 수 없습니까? – kutschkem
그것의 관리되는 테이블, 그리고 네, 당신의 요점을 가지고. 지금 당신의 제안에 따라 변경 한 후 코드를 실행할 때 "SLF4J : 클래스"org.slf4j.impl.StaticLoggerBinder "클래스를로드하지 못했습니다. SLF4J : 기본값으로 no-operation (NOP) 로거 구현" – user3521180
오류 또는 경고입니까? 나는 코드가 여전히 작동해야한다고 가정하고, 아무 것도 로그하지 않는다. – kutschkem