0

나는 spark.readStream을 사용하여 Kafka에서 데이터를 읽고 결과 데이터 프레임에 폭발을 실행합니다. 하이브 테이블에 폭발의 결과를 저장하려고하는데 그 해결책을 찾지 못했습니다. 나는 다음과 같은 방법을 시도하지만 (이 실행하지만 새로운 생성 된 파티션이 표시되지 않습니다) 작동하지 않습니다하이브에 spark.writeStream 결과를 저장하려면 어떻게해야합니까?

는 당신이 필요로하는 파일 시스템의 dt 파티션

  val query = tradelines.writeStream.outputMode("append") 
       .format("memory") 
       .option("truncate", "false") 
       .option("checkpointLocation", checkpointLocation) 
       .queryName("tl") 
       .start() 

      sc.sql("set hive.exec.dynamic.partition.mode=nonstrict;") 

      sc.sql("INSERT INTO TABLE default.tradelines PARTITION (dt) SELECT * FROM tl") 

답변

1

확인 HDFS를 새 파티션을 보려면 하이브 테이블에 MSCK REPAIR TABLE을 실행하십시오.

Spark과 특별한 관계가없는 경우 Kafka Connect HDFS은 Kafka에서 직접 하이브 파티션을 등록 할 수 있습니다.

관련 문제