Python 数据类型到 pyspark.sql.types 自动转换
Python datatypes to pyspark.sql.types auto conversion
我需要根据列名和数据类型集创建数据框。但是数据类型以 str、int、float 等形式给出。但我需要将它们转换为 StringType、IntegerType 等。StructType/StructField.
需要
我可以创建简单的映射来完成这项工作,但我想知道是否有这些类型的自动转换?
我知道这已经很久了,但您可以尝试以下操作:
from pyspark.sql.types import _parse_datatype_string
那么你可以如下使用它:
_parse_datatype_string('int') # Will convert it to IntegerType of pyspark
注意:类型必须是字符串格式
参考:https://spark.apache.org/docs/2.4.0/api/python/_modules/pyspark/sql/types.html
您可以使用以下函数来完成此操作:
>>> from pyspark.sql.types import _infer_type
>>> _infer_type([1.0, 2.0])
ArrayType(DoubleType,true)
如果您直接在输入中输入类型,您也可以这样做:
>>> my_type = type(42)
>>> _infer_type(my_type())
LongType
最后,如果你只有一个描述 python 类型的字符串,你可以使用这个:
>>> from pydoc import locate
>>> _infer_type(locate('int'))
LongType
来源:
- pyspark.sql.types source code
- Lexical cast from string to type
我需要根据列名和数据类型集创建数据框。但是数据类型以 str、int、float 等形式给出。但我需要将它们转换为 StringType、IntegerType 等。StructType/StructField.
需要我可以创建简单的映射来完成这项工作,但我想知道是否有这些类型的自动转换?
我知道这已经很久了,但您可以尝试以下操作:
from pyspark.sql.types import _parse_datatype_string
那么你可以如下使用它:
_parse_datatype_string('int') # Will convert it to IntegerType of pyspark
注意:类型必须是字符串格式
参考:https://spark.apache.org/docs/2.4.0/api/python/_modules/pyspark/sql/types.html
您可以使用以下函数来完成此操作:
>>> from pyspark.sql.types import _infer_type
>>> _infer_type([1.0, 2.0])
ArrayType(DoubleType,true)
如果您直接在输入中输入类型,您也可以这样做:
>>> my_type = type(42)
>>> _infer_type(my_type())
LongType
最后,如果你只有一个描述 python 类型的字符串,你可以使用这个:
>>> from pydoc import locate
>>> _infer_type(locate('int'))
LongType
来源:
- pyspark.sql.types source code
- Lexical cast from string to type