Pyspark:AssertionError: dataType should be DataType


1. schema参数,AssertionError: dataType should be DataType

# AssertionError: dataType should be DataType
schema = StructType([
        # true代表不为空
        StructField("col_1", StringType, True),
        StructField("col_2", StringType, True),
        StructField("col_3", StringType, True),
      ]
)
#原因:StringType等后面没有加括号“()”
#修改为:
schema = StructType([
        # true代表不为空
        StructField("col_1", StringType(), True),
        StructField("col_2", StringType(), True),
        StructField("col_3", StringType(), True),
      ]
)

2. pyspark目前的数据类型有:

NullType、StringType、BinaryType、BooleanType、DateType、TimestampType、DecimalType、DoubleType、FloatType、ByteType、IntegerType、LongType、ShortType、ArrayType、MapType、StructType(StructField)等,要根据情况使用,注意可能的溢出问题。

其中大佬总结的对应python数据类型如下:

NullType None
StringType basestring
BinaryType bytearray
BooleanType bool
DateType datetime.date
TimestampType datetime.datetime
DecimalType decimal.Decimal
DoubleType float(double precision floats)
FloatType float(single precision floats)
ByteType int(a signed integer)
IntegerType int(a signed 32-bit integer)
LongType long(a signed 64-bit integer)
ShortType int(a signed 16-bit integer)

参考:https://www.cnblogs.com/yurunmiao/p/4923694.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM