Spark DataFrame saveAsTable:

时间:2019-02-12 20:54:27

标签: apache-spark apache-spark-sql

我想知道如何自定义用户使用的表格设置 DataFrameWriter#saveAsTable

有什么方法可以调整存储格式(例如使用Avro或ORC), 压缩(以使用“ snappy”等)和建立表的位置 不在DataFrame中?

我正在寻找的Spark2 DataFrameWriter#saveAsTable等效于创建具有某些自定义设置的托管 Hive表,您通常将这些自定义设置传递给Hive CREATE TABLE命令,如下所示:

  • STORED AS <format>
  • LOCATION <hdfs_path>
  • TBLPROPERTIES("orc.compress"="SNAPPY")

2 个答案:

答案 0 :(得分:0)

兽人格式

  df.write.format("orc").mode("overwrite").saveAsTable("default.spark1")

实木复合地板格式

df.write
    .format("parquet")
    .mode("overwrite")
    .save("/home/prashant/spark-data/mental-health-in-tech-survey/parquet-data/")                                   

答案 1 :(得分:0)

下面是用于以不同格式保存数据的代码,

  1. CSV
  2. 实木复合地板
  3. Avro
  4. 兽人
  5. Json

还可以在保存数据时调整不同的压缩率,以下是相同的示例代码语句,

df.write
    .format("com.databricks.spark.csv")
    .option("header", "true")
    .option("codec", "org.apache.hadoop.io.compress.GzipCodec")
    .save("newcars.csv.gz")

================================================ ==============================

df.write
    .format("orc")
    .mode("overwrite")
    .option("codec", "org.apache.hadoop.io.compress.GzipCodec")
    .saveAsTable("tbl_nm")