hive에서 json포맷 기반으로 데이터 가져오기 위한 설정

IT기술/hadoop family|2021. 1. 16. 00:30

2020-02-26 작성

 

우리 랩에서는 보통 데이터 포맷으로 parquet을 사용한다.

hive에서도 데이터를 가져올 때 parquet 포맷으로 가져오는데, 그 때는 hive 테이블 포맷이 다음과 같다.

ROW FORMAT SERDE
‘org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe’
STORED AS INPUTFORMAT
‘org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat’
OUTPUTFORMAT
‘org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat’

 

그런데 json 파일 포맷을 hive에서 사용하고 싶다는 요청이 왔다. 설정 적용은 생각보다 어렵지 않다. hive hcatalog 라이브러리(hive-hcatalog-core-1.1.0-cdh5.8.0.jar)를 cloudera hive 라이브러리 디렉토리에 넣고 hive-site.xml에 추가해주면 된다.

<property>
  <name>hive.aux.jars.path</name>
  <value>[jar파일이 있는 디렉토리 경로]</value>
</property>

클라우데라 설정은 다음과 같다.

 

나의 경우는 hive hcatalog가 이미 설치가 돼있고, /opt/cloudera/parcels/CDH/jars 디렉토리에 라이브러리가 있었다. 설정 후 hive 관련 서비스를 재시작해주면 된다. 그리고 hive에서 json 포맷이 잘 불러와지는지 확인하면 된다.

ROW FORMAT SERDE
‘org.apache.hive.hcatalog.data.JsonSerDe’
STORED AS INPUTFORMAT
‘org.apache.hadoop.mapred.TextInputFormat’
OUTPUTFORMAT
‘org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat’

댓글()

pyspark parquet file 읽어오기

IT기술/hadoop family|2021. 1. 15. 23:26

2019-12-12 작성

 

jupyter notebook에서 pyspark를 사용해 parquet file을 읽어 올 때 가장 기본이 되는 code이다. 실제 pyspark shell에서는 import 등의 내용이 필요 없을 수 있다.

 

import pyspark
from pyspark.sql import SQLContext

sc = pyspark.SparkContext.getOrCreate()
sqlContext = SQLContext(sc)
df = sqlContext.read.parquet('[parquet 경로]')
df.show()

sc.stop()

댓글()