如何使用其模式从 Pyspark 数据框创建配置单元表?

Posted

技术标签:

【中文标题】如何使用其模式从 Pyspark 数据框创建配置单元表?【英文标题】:How to create hive table from Pyspark data frame, using its schema? 【发布时间】:2020-06-15 14:22:11 【问题描述】:

我使用以下代码创建了数据框:

  import pyspark
    from pyspark.sql import functions as F

    sc = pyspark.SparkContext()
    spark = pyspark.sql.SparkSession(sc)

    data = [('A', 'B', 1), ('A', 'B', 2), ('A', 'C', 1)]
    columns = ['Column1', 'Column2', 'Column3']
    data = spark.createDataFrame(data, columns)
    data.printSchema()
 root
 |-- Column1: string (nullable = true)
 |-- Column2: string (nullable = true)
 |-- Column3: long (nullable = true)

我想在 pyspark 中使用我的 pySpark 数据框架构创建一个配置单元表?这里我提到了示例列,但我的数据框中有很多列,那么有没有办法自动生成这样的查询?

【问题讨论】:

【参考方案1】:

我相信您的表创建是一次性活动,在这种情况下,spark 和 Hive 表之间的数据类型可能不同。

如果你有很多列,你可以做的最好的事情..

打印(data.schema)

这样你就会得到所有的架构

【讨论】:

嗨,谢谢您的快速回复,我必须继续获取 csv 文件,并且基于 csv 文件我必须创建 hive table.data.schema 给出“ StructType(List(StructField(Column1, StringType,true),StructField(Column2,StringType,true),StructField(Column3,LongType,true))) ".

以上是关于如何使用其模式从 Pyspark 数据框创建配置单元表?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 PySpark 中的数据框中获取模式定义?

Pyspark 数据框:将 jdbc 写入具有给定模式的表的动态创建

如何使用 pyspark 从文本日志文件的特定部分创建数据框

在 pyspark 中使用 RDD 从字典创建数据框

找不到pyspark数据框保存到配置单元表

从 pyspark 中的字典列创建数据框