2021년 9월 4일 토요일

Spark에서 자료 형태별로 읽기 및 저장하기

 조건 : HDFS Cluster와 연동이 되고 있는 상태

start-dfs.sh

start-yarn.sh

start-all.sh

1. HDFS로부터 RDD 읽고 저장하기

종합된 자료만 읽기

val myrdd = sc.textFile("hdfs:///user/spark/text/word_counts")

myrdd.collect().foreach(println)

파일 위치까지 읽기

val rddWhole = spark.sparkContext.wholeTextFiles("hdfs:///user/spark/text/word_counts")

rddWhole.collect().foreach(println)

rddWhole.take(2).foreach(println)

저장하기

myrdd.saveAsTextFile("hdfs:///user/spark/word_rdd")


2. HDFS로부터 CSV 읽고 저장하기

val csv_data = sc.textFile("hdfs:///user/spark/names.csv")

csv_data.take(5)


csv파일을 데이터프레임으로 읽기

val df = spark.read.option("header", "true").csv("hdfs:///user/spark/names.csv")

df.show()


데이터프레임으로 저장하기

df.write.option("header","true").mode("overwrite").csv("hdfs:///user/spark/df")


3. json 파일 읽어오기 및 저장

val df1 = spark.read.json("file:///home/spark/names.json")

df1.show()

df1.write.json("hdfs:///user/spark/names.json")