วันพฤหัสบดีที่ 20 ตุลาคม พ.ศ. 2559

Apache Spark Transform Sas7BDat to Parquet

     พอดีเนื่องจากได้มีโอกาส ได้ลองแปลง Sas7BDat file เป็น parquet file บน Hadoop ผ่านทาง Apache Spark เลยเอามาให้ดูกันครับ เขาว่าเล็กลง 14 เท่า


Ref : http://blog.sasanalysis.com/2015/07/transform-sas-files-to-parquet-through.html

จาก Source ต้นทางใช้ Python แปลงข้อมูล แต่ผมขอให้ Scala ก็แล้วกันครับ

import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
import org.apache.spark.sql.SQLContext

import com.github.saurfang.sas.spark._

object SparkSas7BDat {
  def main(args: Array[String]) {

    val sasfile = "worldcts.sas7bdat"
 
    val sparkConf = new SparkConf().setAppName("SparkSas7BDat")
    .setMaster("local")

    val sc = new SparkContext(sparkConf)
    val sqlContext = new SQLContext(sc)
    sqlContext.setConf("spark.sql.parquet.compression.codec", "snappy")

    val sas_data = sqlContext.read.format("com.github.saurfang.sas.spark").load(sasfile).cache()
    sas_data.write.parquet("test_parquet")

  }
}

จากการทดสอบ ไฟล์เล็กลงไป 4.75 เท่า
ต้นฉบับขนาด 7.33 MB
ผลลัพธ์ 1.54 MB

ไม่มีความคิดเห็น:

แสดงความคิดเห็น