[HADOOP] Spark RDD를 하이브 테이블에 저장하십시오.
HADOOPSpark RDD를 하이브 테이블에 저장하십시오.
스파크에서는 RDD 객체를 하이브 테이블에 저장하려고합니다. createDataFrame을 사용하려고하는데 던지는 중입니다.
val products=sc.parallelize(evaluatedProducts.toList);
//here products are RDD[Product]
val productdf = hiveContext.createDataFrame(products, classOf[Product])
Spark 1.5 버전을 사용하고 있습니다.
해결법
-
==============================
1.귀하의 제품이 클래스 (케이스 클래스가 아닌)라면 DataFrame을 생성하기 전에 rdd를 RDD [Tuple]로 변환하는 것이 좋습니다.
귀하의 제품이 클래스 (케이스 클래스가 아닌)라면 DataFrame을 생성하기 전에 rdd를 RDD [Tuple]로 변환하는 것이 좋습니다.
import org.apache.spark.sql.hive.HiveContext val hiveContext = new HiveContext(sc) import hiveContext.implicits._ val productDF = products .map({p: Product => (p.getVal1, p.getVal2, ...)}) .toDF("col1", "col2", ...)
이 방법을 사용하면 Product 속성을 DataFrame의 열로 사용할 수 있습니다.
그런 다음 다음을 사용하여 임시 테이블을 만들 수 있습니다.
productDF.registerTempTable("table_name")
또는 실제 테이블 :
productDF.write.saveAsTable("table_name")
from https://stackoverflow.com/questions/37050828/save-spark-rdd-to-hive-table by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 케르베로스 란 무엇입니까? (0) | 2019.07.14 |
---|---|
[HADOOP] FSDataInputStream에서 FileInputStream으로 변환 (0) | 2019.07.14 |
[HADOOP] C #을 사용하여 HBase / Hadoop 데이터베이스에 연결하는 방법 (0) | 2019.07.14 |
[HADOOP] Hadoop이 웹 인터페이스에 표시하는 모든 직업 추적기 및 작업 추적기 정보를 프로그래밍 방식으로 어떻게 얻을 수 있습니까? (0) | 2019.07.14 |
[HADOOP] Hadoop MapReduce를 이용한 전산 언어학 프로젝트 아이디어 (0) | 2019.07.14 |