sparksql 指定输出格式OUTPUTFORMAT
时间: 2024-08-16 15:04:57 浏览: 76
Spark SQL中的`OUTPUTFORMAT`是一个用于设置数据写入时所使用的文件输出格式的属性。当你需要将查询结果持久化到外部存储系统(如HDFS、S3等)时,可以指定`OUTPUTFORMAT`。常见的输出格式有:
1. `org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat`: 这个格式会忽略列值为空的行,并作为文本文件保存,每一行是一个记录。
2. `org.apache.spark.sql.hive.HiveExternalTableFormat`: Spark SQL提供的默认格式,它是Hive的输出格式,适用于写入Hive表或者Hadoop支持的其他格式。
3. `parquet` 或 `com.databricks.spark.csv`: 分别表示Parquet(二进制列式存储格式,适合性能优化)和CSV(逗号分隔值,方便人类阅读)格式。
4. `orc` 或 `com.databricks.spark.orc`: 类似于Parquet,是另一种高效的列式存储格式。
设置`OUTPUTFORMAT`的方式通常是通过`saveAsTextFile()`、`write.format()`等函数的format参数,例如:
```scala
val df = // 加载数据
df.write
.format("parquet") // 或者 "csv", "orc", "textfile" 等
.option("path", "hdfs://your-path")
.mode(SaveMode.Overwrite) // 保存模式
.outputMode(OutputMode.Append) // 如果你想追加新数据
.save()
```
阅读全文