为 spark.createDataFrame 动态设置架构 [英] Dynamically setting schema for spark.createDataFrame

查看:46
本文介绍了为 spark.createDataFrame 动态设置架构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我试图动态设置架构中的数据类型.

So I am trying to dynamically set the type of data in the schema.

我在stackoverflow上看到了代码schema = StructType([StructField(header[i], StringType(), True) for i in range(len(header))])

I have seen the code schema = StructType([StructField(header[i], StringType(), True) for i in range(len(header))]) on stackoverflow

但是如何将更改添加到条件语句中?

But how can I add change this into a conditional statement?

如果header在list1中,则IntergerType,如果在list2中则为DoubleType,否则为StringType?

If header is in list1 then IntergerType, if in list2 then DoubleType, else StringType for example?

推荐答案

一位同事为我解答了这个问题

A colleague answered this for me

schema = StructType([
    StructField(header[i], DateType(), True) 
      if header[i] in dateFields 
      else StructField(header[i], StringType(), True)
      for i in range(len(header))])

这篇关于为 spark.createDataFrame 动态设置架构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆