开发人员和API文档都不包含有关可以在DataFrame.saveAsTable
或DataFrameWriter.options
中传递哪些选项的任何参考,它们会影响Hive表的保存。
我希望在这个问题的答案中,我们可以汇总对Spark开发人员有用的信息,他们希望更好地控制Spark如何保存表格,并且可能为改进Spark的文档提供基础。
答案 0 :(得分:4)
看看https://github.com/delta-io/delta/blob/master/src/main/scala/org/apache/spark/sql/delta/DeltaOptions.scala类“ DeltaOptions”
当前支持的选项是:
答案 1 :(得分:3)
在任何地方都看不到options
的原因是它们是特定于格式的,开发人员可以继续使用一组新的options
创建自定义写入格式。
但是,对于几种受支持的格式,我已经列出了spark代码本身提到的选项:
答案 2 :(得分:0)
根据源代码,您可以指定path
选项(指示将hive外部数据存储在hdfs中的位置,并在Hive DDL中转换为“位置”)。
不确定您是否还有其他与saveAsTable相关的选项,但我将搜索更多选项。
答案 3 :(得分:0)
根据最新的spark文档,以下是使用.saveAsTable(name, format=None, mode=None, partitionBy=None, **options) API将DataFrame写入外部存储时可以传递的选项
如果您单击文档右侧的source超链接,则可以遍历并查找其他不清楚的参数的详细信息 例如。 format和options(在DataFrameWriter类下进行了描述)
因此,当文档读取options – all other string options
时,它指的是options,它为您提供了spark 2.4.4
的以下选择
timeZone:设置字符串,该字符串指示要用于格式化的时区 JSON / CSV数据源或分区值中的时间戳记。如果未设置,则使用默认值会话本地时区。
,当它读取format – the format used to save
时,它是指format(source)
指定基础输出数据源。
参数
source –字符串
数据源的名称,例如“ json”,“ parquet”。
希望这会有所帮助。
答案 4 :(得分:-1)
我相信这是您正在寻找的:https://github.com/databricks/spark-csv
答案 5 :(得分:-1)
版本之间存在差异。
spark2中包含以下内容:
createOrReplaceTempView()
createTempView()
createOrReplaceGlobalTempView()
createGlobalView()
saveAsTable is deprecated in spark 2.
基本上,这些内容取决于表的可用性。 请参阅link
答案 6 :(得分:-1)
saveAsTable(String tableName)
将DataFrame的内容另存为指定表。
仅供参考-> https://spark.apache.org/docs/2.3.0/api/java/org/apache/spark/sql/DataFrameWriter.html