Pyspark SaveAsTable未从SQL推断架构

Pyspark SaveAsTable未从SQL推断架构,pyspark,Pyspark,我正在尝试通过执行以下操作从SQL查询的输出创建表: sqlContext = HiveContext(self.sc) j = "select a as a1, b as b1, c as c1 from x" df = self.sqlContext.sql(j) df.write.saveAsTable(target_table) 这将使用两列(键和值)保存表,而不是a1、b1、c1列。我想这是因为我没有在这里定义模式。但与不推荐使用的df.saveAsTable(表)使用的方法相同,该

我正在尝试通过执行以下操作从SQL查询的输出创建表:

sqlContext = HiveContext(self.sc)
j = "select a as a1, b as b1, c as c1 from x"
df = self.sqlContext.sql(j)
df.write.saveAsTable(target_table)
这将使用两列(键和值)保存表,而不是a1、b1、c1列。我想这是因为我没有在这里定义模式。但与不推荐使用的df.saveAsTable(表)使用的方法相同,该表用于自动推断模式


使用新的DataFrameWriter时情况是否发生了变化?

我认为在使用
saveAsTable
时必须指定格式

不过,还有另一种方法可以将数据帧保存到配置单元表中

  • 创建临时视图

    df.createOrReplaceTempView(“df”)

  • 运行Spark sql从此临时视图创建表

    spark.sql(“创建表,如果不存在tbName作为select*from df”)


  • 我认为在使用
    saveAsTable
    时必须指定格式

    不过,还有另一种方法可以将数据帧保存到配置单元表中

  • 创建临时视图

    df.createOrReplaceTempView(“df”)

  • 运行Spark sql从此临时视图创建表

    spark.sql(“创建表,如果不存在tbName作为select*from df”)