Pyspark 使用spark sql动态转换拼花地板的数据类型,无需明确指定列名

Pyspark 使用spark sql动态转换拼花地板的数据类型,无需明确指定列名,pyspark,apache-spark-sql,spark-dataframe,hiveql,parquet,Pyspark,Apache Spark Sql,Spark Dataframe,Hiveql,Parquet,我正在寻找一种动态处理数据类型转换的方法。SparkDataframes,我使用配置单元SQL将数据加载到数据框中,并存储到数据框中,然后写入拼花地板文件。Hive无法读取某些数据类型,我想将十进制数据类型转换为双精度。我们可以通过任何方式动态处理数据类型,而不是单独指定每个列名。假设在我的数据框架中,8列中有50列是小数,需要将所有8列转换为双数据类型,而无需指定列名。我们可以直接这样做吗?没有直接的方法来转换数据类型这里有一些方法 要么必须在配置单元查询中强制转换这些列 或 创建所需的数据类

我正在寻找一种动态处理数据类型转换的方法。SparkDataframes,我使用配置单元SQL将数据加载到数据框中,并存储到数据框中,然后写入拼花地板文件。Hive无法读取某些数据类型,我想将十进制数据类型转换为双精度。我们可以通过任何方式动态处理数据类型,而不是单独指定每个列名。假设在我的数据框架中,8列中有50列是小数,需要将所有8列转换为双数据类型,而无需指定列名。我们可以直接这样做吗?

没有直接的方法来转换数据类型这里有一些方法

要么必须在配置单元查询中强制转换这些列

创建所需的数据类型,填充数据并使用它生成拼花地板

您可以从配置单元查询元数据中读取数据类型,并使用动态代码获取要获取的案例1或案例2。已实现

有两种选择:
一,。使用dataframe中的模式并动态生成查询语句
二,。在spark sql中使用创建表…选择*选项

这已经得到了回答,其中包含详细信息和代码