sparkはjson,parquetファイルを読みだします。

2702 ワード

sparkでサポートされているいくつかの一般的なフォーマット:
テキストファイル、フォーマットなし
jsonファイル、半構造化
parquet、1種の流行っている列式の保存のフォーマット
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,    sql
    val 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()

  }

}