root
|-- Name: string (nullable = true)
|-- dt: struct (nullable = true)
| |-- InvalidType: string (nullable = true)
我试图将该列强制转换为timestamp,但得到以下异常。
val df = spark.loadFromMapRDB("path")
df.withColumn("dt1", $"dt" ("InvalidType").cast(TimestampType))
.drop("dt")
df.show(5, false)
com.mapr.db网站.异常.schemamaException:架构不能为空
为列{dt}推断
在com.mapr.db网站.spark.sql.utils文件.MapRSqlUtils$.convertField(maprsqultils.scala:250个)
在com.mapr.db网站.spark.sql.utils文件.MapRSqlUtils$.convertObject(MapRSqlUtils.scala:64个)
在com.mapr.db网站.spark.sql.utils文件.MapRSqlUtils$.convertRootField(MapRSqlUtils.斯卡拉:48)
在com.mapr.db网站.spark.sql.utils文件.MapRSqlUtils$$anonfun$documentsToRow$1.apply文件(MapRSqlUtils.scala:第33页)
在scala.collection.Iterator$$anon$12.nextCur公司(迭代器。scala:434)
在scala.collection.Iterator$$anon$11.0下一步(迭代器.scala:408)
在org.apache.spark网站.sql.catalyst.expressions表达式.GeneratedClass类$GenerateEditor.processNext程序(未知)
(来源)
在org.apache.spark网站.sql.execution.BufferedRowIterator哈斯奈特先生(BufferedRowIterator.java:43)
在org.apache.spark网站.sql.execution.SparkPlan命令$$anonfun$2.0适用(斯帕克普兰。斯卡拉:234)
在org.apache.spark网站.sql.execution.SparkPlan命令$$anonfun$2.0适用(斯帕克普兰。斯卡拉:228)
在org.apache.spark网站.rdd。rdd$$anonfun$map分区内部$1$$anonfun$apply$25.apply(刻度:827)
在org.apache.spark网站.rdd。rdd$$anonfun$map分区内部$1$$anonfun$apply$25.apply(刻度:827)
在org.apache.spark网站.rdd.rdd.computeOrReadCheckpoint检查点(关系数据库scala:323)
在org.apache.spark网站.计划程序.ResultTask.runTask(结果任务量表:87)
在org.apache.spark网站.scheduler.Task.run运行(任务scala:108)
在java.util.concurrent文件.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
在java.util.concurrent文件.ThreadPool执行器$工人.run(ThreadPoolExecutor.java:624)
在java.lang.Thread线程.运行(线程.java:748)