在pyspark中创建了示例数据帧
from pyspark.sql.types import *
from pyspark.sql.types import StructField
from pyspark.sql import types
testdata = [("aaaa",1,50.0,"05-APR-2020"),
("bbbb",2,100.0,"06-APR-2020")]
dataschema = types.StructType([
types.StructField('col1', types.StringType(), True),
types.StructField('col2', types.IntegerType(), True),
types.StructField('col3', types.DoubleType(), True),
types.StructField('col4', types.DateType(), True)
])
testdf2 = spark.createDataFrame(
spark.sparkContext.parallelize(testdata),
dataschema
)
testdf2.printSchema()
testdf2.show()
获取以下错误
TypeError:字段col4:DateType无法接受类型中的对象“05-APR-2020”
如果我有一个包含两列的列表,一个是新列,另一个是数据类型。 如何根据列表或csv/json文件重命名所有列并转换每列的数据类型
默认情况下,Spark不会将字符串转换为
date type
我们需要使用
datetime
模块定义输入数据,然后在使用schema spark读取时创建col4
到datetypeExample:
另一种方法是为
col4
定义stringtype
,然后使用to_date
函数转换为date
相关问题 更多 >
编程相关推荐