代码之家  ›  专栏  ›  技术社区  ›  Hasif Subair

从Mapr DB表推断为InvalidType的Spark dataframe Timestamp列

  •  0
  • Hasif Subair  · 技术社区  · 6 年前

    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)

    1 回复  |  直到 6 年前
        1
  •  1
  •   abhishek chaurasiya    6 年前

    如果你知道表的模式。您可以创建自己的case类来定义表的模式,然后使用这个case类加载表。

    Loading Data from MapR Database as an Apache Spark Dataset