在pyspark中将字符串转换为时间戳

我对pyspark完全陌生,我有一个输入文件(用'|'分隔),其值类似于

**YearMonth** language Rate 2018-01 en 0.093 2018-02 en 0.084 2018-03 en 0.088 ... 2018-12 en 0.079 2019-01 en 0.088 2018-01 fr 0.094 2018-02 fr 0.078 2018-03 fr 0.087 ... 2018-12 fr 0.084 2019-01 fr 0.079

我有一个json在此输入数据帧上应用架构,但是当我使用下面的JSON将数据类型指定为所有String时:

|2013-12-20 00:00:00|19:00:00|
 |2013-12-21 00:00:00|18:00:00|

我可以将此模式(两个字符串)应用于我的数据框,并读取它,效果很好。 但是当我使用'timestamp'作为json时,它在数据帧上应用了架构,但是当我读到它低于错误时:

{
  "type" : "struct","fields" : [ {

    "name" : "date_generated","type" : "string","nullable" : true,"metadata" : {}
  },{
    "name" : "time_generated","metadata" : {}
  }
 ]
} 

下面是pyspark代码:

field date_arrested: TimestampType can not accept object '2013-12-20 00:00:00' in type <class 'str'>

输入新的JSON:

inputDf = spark.read.option("delimiter","|").csv(inout_file_path)
with open('schema.json','r') as S:  # path to schema file
    saved_schema = json.load(S)

targetDf = spark.createDataFrame(inputDf.rdd,StructType.fromJson(saved_schema))
targetDf.printSchema()

感谢帮助。

gromzyw 回答:在pyspark中将字符串转换为时间戳

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3111076.html

大家都在问