spark讀取json,parquet檔案
阿新 • • 發佈:2019-02-13
spark支援的一些常見的格式:
文字檔案,無任何的格式
json檔案,半結構化
parquet,一種流行的列式儲存格式
sequencefile,一種用於key-value的hadoop檔案格式,如果需要讀hdfs資料的話,通常走hive的比較多。
在企業中很少用,原因是寫sql的時候,能用sparksession解決的,都不會去弄rdd的各種transform和action
import org.apache.spark.SparkConf import org.apache.spark.sql.SparkSession /** * Created by zengxiaosen on 16/9/23.*/ object operJson_and_parquet { def main(args: Array[String]): Unit = { val sparkconf = new SparkConf().setAppName("operJsonAndParquet").setMaster("local") val ss = SparkSession.builder() .config(sparkconf) .getOrCreate() val sc = ss.sparkContext import ss.implicits._ //讀文字檔案,生成普通rdd,可以通過toDF轉化為dataframe,進而使用sqlval fileRDD = sc.textFile("/opt/tarballs/spark_kafka/beifengspark/src/main/scala/2015082818") ss.read.json("/opt/tarballs/spark_kafka/beifengspark/src/main/scala/people.json") .createOrReplaceTempView("people") val rs = ss.sql("select * from people") rs.printSchema() rs.show() ss.read.parquet("/opt/tarballs/spark_kafka/beifengspark/src/main/scala/users.parquet") .createOrReplaceTempView("users") val rs2 = ss.sql("select * from users") rs2.printSchema() rs.show() sc.stop() ss.stop() } }