HDFS – Formato, compresión y descompresion en Scala

Muestra una serie de ejemplos de compresión y descompresión de archivos en diferentes formatos tanto de representación como de compresión. scala_logo

Comprimir archivos Json

val rdd = sc.parallelize( Array(1, 2, 3, 4, 5) ) // Definir RDD 
val df = rdd.toDF() // Transformar a df
df.write.mode("overwrite").format("json").save("hdfs:///formats/file_no_compression_json")
df.write.mode("overwrite").format("json").option("compression", "gzip").save("hdfs:///formats/file_with_gzip_json")
df.write.mode("overwrite").format("json").option("compression", "snappy").save("hdfs:///formats/file_with_snappy_json")

Comprimir archivos Parquet

val rdd = sc.parallelize( Array(1, 2, 3, 4, 5) ) // Definir RDD 
val df = rdd.toDF() // Transformar a df
df.write.mode("overwrite").format("parquet").mode("overwrite").save("hdfs:///formats/file_no_compression_parquet")
df.write.mode("overwrite").format("parquet").option("compression", "gzip").mode("overwrite").save("hdfs:///formats/file_with_gzip_parquet")
df.write.mode("overwrite").format("parquet").option("compression", "snappy").mode("overwrite").save("hdfs:///formats/file_with_snappy_parquet")

Comprimir archivos ORC

val rdd = sc.parallelize( Array(1, 2, 3, 4, 5) ) // Definir RDD 
val df = rdd.toDF() // Transformar a df
df.write.mode("overwrite").format("orc").option("compression", "none").mode("overwrite").save("hdfs:///formats/file_no_compression_orc")
df.write.mode("overwrite").format("orc").option("compression", "zlib").mode("overwrite").save("hdfs:///formats/file_with_zlib_orc")
df.write.mode("overwrite").format("orc").option("compression", "snappy").mode("overwrite").save("hdfs:///formats/file_with_snappy_orc")

Descomprimir archivos Json

val rdd = sqlContext.read.json("hdfs:///formats/file_no_compression_json")
rdd.collect()
val rdd = sqlContext.read.json("hdfs:///formats/file_with_gzip_json")
rdd.collect()
val rdd = sqlContext.read.json("hdfs:///formats/file_with_snappy_json")
rdd.collect()

Descomprimir archivos Parquet

val rdd = sqlContext.read.parquet("hdfs:///formats/file_no_compression_parquet")
rdd.collect()
val rdd = sqlContext.read.parquet("hdfs:///formats/file_with_gzip_parquet")
rdd.collect()
val rdd = sqlContext.read.parquet("hdfs:///formats/file_with_snappy_parquet")
rdd.collect()

Descomprimir archivos ORC

val rdd = sqlContext.read.orc("hdfs:///formats/file_no_compression_orc")
rdd.collect()
val rdd = sqlContext.read.orc("hdfs:///formats/file_with_zlib_orc")
rdd.collect()
val rdd = sqlContext.read.orc("hdfs:///formats/file_with_snappy_orc")
rdd.collect()

Otros artículos que pueden ser de interés:

Autor: Diego Calvo