본문 바로가기

Study/Bigdata

NBP Ncloud Cloud Hadoop에서 pySpark로 Object Storage 읽오는 방법

맨날 문서만 만지다가 오랜만에 코드 만지니 재밌네요. 

문서질 하면 벌써 뻗었겠지만 코드질 하니 잠이 안오네요.


이번에 프로젝트를 하면서 네이버 클라우드를 처음 사용하는데 생각보다 재미있게 만들었네요


일단 클라우드 하둡을 세팅을 하면 HDP를 포팅해논것 같은데, 일단 Ambari가서 안쓸것 같은 Zepplin, Ozzie 는 다 꺼버리고 


일단 NBP가 아쉬운건, 정말 잘만들어놨는데, 설명서가 부족하네요 ..;;

(네이버에서 예제코드를 AWS S3 기준으로 설명해놨네여)


다음의 예제는 Pyspark로 Object Storage의 Parquet를 가져오는 예제입니다 


2018/11/29 - [Study/Bigdata] - Pyspark로 Spark on Yarn Code --1(개발환경구성)


일단 기본코드는 다움을 따라서 쓰시면 되십니다



spark = SparkSession.builder.appName("new_dpi_raw_merge").config("fs.s3a.endpoint","https://kr.object.ncloudstorage.com").config("fs.s3a.access.key","accessKEY 입력").config("fs.s3a.secret.key","secretKey입력").getOrCreate()


df=spark.read.parquet("s3a://bucket명/버킷안에있는폴더/myfile.parquet")
df.show()
spark.stop()


일단, Pyspark 나 스칼라고 custom s3 연결하는 방법이 나오는데, 구글에 나오는것들이 다 옛날이 좀 많습니다. 그냥 스칼라에서 하시는것처럼 주룩 이어 쓰시면 됩니다. 

--- 구글에 보면 hadoopConfiguration 줄줄히 코드 분리해논게 있는데, 요즘에 스파크 돌아가는걸 안봤는데, 저게 버전 2.몇 되면서 다 변경된걸로 기억을 하고 있다는

--스파크 3나온다는데, 나오면 구경이나 해봐야지 


뭐 일단 지금은 개발이라, core나 executor 숫자는 안넣고 돌리는데

저렇게 하면 NBP에서 object storage에 접근해서 parquet 파일 바로 불어오실수 있습니다 

일단 cloudhadoop에서 zepplin도 되는데, 역시 코드가 편해서 제플린 불편하네요.


PySpark는 금방 끝났는데, Pandas에서 Object Storage로 Parquet를 바로 넣는 방법을 모르겠네요. S3처럼 하면 될텐데