您好,我正在使用以下代码将数据从Spark(pyspark)数据帧加载到雪花表中,但出现类似无法识别时间戳'2020-06-15T12:00:20.040Z'的错误。 请在下面找到相同的代码
sfOptionsRaw1 = {
“ sfURL”:“测试”,
“ sfUser”:“测试”,
“ sfPassword”:“测试”,
“ sfDatabase”:“ test”,
“ sfSchema”:“测试”,
“ sfWarehouse”:“测试”,
“ sfrole”:“测试”,
“ TIMESTAMP_TYPE_MAPPING”:“ TIMESTAMP_NTZ”,
“ TIMESTAMP_NTZ_OUTPUT_FORMAT”:“ YYYY-MM-DD HH24:MI:SS.FF3”
}
test1.write.format(SNOWFLAKE_SOURCE_NAME).option(“ dbtable”,“ test”)。option(“ columnmap”,“ Map(type-> type_test1)”)。options(** sfOptionsRaw1).mode(“ append“)。save()
在cpde上执行后,出现以下错误
Py4JJavaError:调用o2088.save时发生错误。 :net.snowflake.client.jdbc.SnowflakeSQLException:无法识别时间戳'2020-06-15T12:00:20.040Z' 文件“ NVefrmAwkn.csv”,第1行,字符63 第1行,列“ _TEST1” [“ TIME_TEST1”:4] 如果您希望在遇到错误时继续加载,请为ON_ERROR选项使用其他值,例如'SKIP_FILE'或'CONTINUE'。有关加载选项的更多信息,请在SQL客户端中运行“ info loading_data”。 在net.snowflake.client.jdbc.SnowflakeUtil.checkErrorAndThrowException(SnowflakeUtil.java:102) 在net.snowflake.client.core.StmtUtil.execute(StmtUtil.java:410) 在net.snowflake.client.core.SFStatement.executeHelper(SFStatement.java:371) 在net.snowflake.client.core.SFStatement.executeQueryInternal(SFStatement.java:195) 在net.snowflake.client.core.SFStatement.executeQuery(SFStatement.java:147) 在net.snowflake.client.core.SFStatement.execute(SFStatement.java:529) 在net.snowflake.client.jdbc.SnowflakeStatementV1.executeInternal(SnowflakeStatementV1.java:204) 在net.snowflake.client.jdbc.SnowflakeStatementV1.execute(SnowflakeStatementV1.java:239) 在net.snowflake.spark.snowflake.JDBCWrapper $$ anonfun $ executeInterruptible $ 1.apply(SnowflakeJDBCWrapper.scala:261) 在net.snowflake.spark.snowflake.JDBCWrapper $$ anonfun $ executeInterruptible $ 1.apply(SnowflakeJDBCWrapper.scala:261) 在net.snowflake.spark.snowflake.JDBCWrapper $$ anonfun $ 3.apply(SnowflakeJDBCWrapper.scala:283) 在scala.concurrent.impl.Future $ PromiseCompletingRunnable.liftedTree1 $ 1(Future.scala:24) 在scala.concurrent.impl.Future $ PromiseCompletingRunnable.run(Future.scala:24) 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624) 在java.lang.Thread.run(Thread.java:748)
答案 0 :(得分:0)
您可以尝试将timestamp参数更改为此吗?
"TIMESTAMP_NTZ_OUTPUT_FORMAT" : "YYYY-MM-DDTHH24:MI:SS.FF3Z"
此格式与您在帖子中显示的格式匹配,因此可以解决您的问题。