Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 从Apache Spark填充Elasticsearch日期_Scala_Apache Spark_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Apache Spark Sql_Spark Dataframe - Fatal编程技术网 elasticsearch,apache-spark-sql,spark-dataframe,Scala,Apache Spark,elasticsearch,Apache Spark Sql,Spark Dataframe" /> elasticsearch,apache-spark-sql,spark-dataframe,Scala,Apache Spark,elasticsearch,Apache Spark Sql,Spark Dataframe" />

Scala 从Apache Spark填充Elasticsearch日期

Scala 从Apache Spark填充Elasticsearch日期,scala,apache-spark,elasticsearch,apache-spark-sql,spark-dataframe,Scala,Apache Spark,elasticsearch,Apache Spark Sql,Spark Dataframe,我在Spark中有一个数据帧,其方案如下: id: string style: string creationdate: string 我的日期是日期时间字符串,如“yyyy-MM-dd HH:MM:ss.SSS”。我正在使用以下命令将“creationdate”从字符串转换为日期: val df2 = df.withColumn("creationdate2", $"creationdate".cast(DateType)) .drop($"creationdate

我在Spark中有一个数据帧,其方案如下:

id: string
style: string
creationdate: string
我的日期是日期时间字符串,如“yyyy-MM-dd HH:MM:ss.SSS”。我正在使用以下命令将“creationdate”从字符串转换为日期:

val df2 = df.withColumn("creationdate2", $"creationdate".cast(DateType))
             .drop($"creationdate")
             .withColumnRenamed("creationdate2", "creationdate")
这导致:

id: string
style: string
creationdate: date
我试图用日期映射填充Elasticsearch索引,其定义如下:

     "creationdate": {
        "type": "date",
        "format": "yyyy-MM-dd"
      }
打印时,字符串到日期时间的转换似乎与此格式匹配。但是,当我用以下内容填充索引时:

df2.saveToEs("myindex")  
我得到一个错误:

 org.apache.spark.util.TaskCompletionListenerException: Found unrecoverable error [169.10.29.240:9200] returned Bad Request(400) - failed to parse [creationdate]; Bailing out..
        at org.apache.spark.TaskContextImpl.markTaskCompleted(TaskContextImpl.scala:105)
        at org.apache.spark.scheduler.Task.run(Task.scala:112)
        at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:282)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

由于日期已转换为DateType,因此应该能够对其进行分析。有什么想法吗?架构是否应该显示日期类型而不是日期?我转换错误了吗?

通过再执行一步并将java.sql.Date转换回字符串来解决。使用自定义项:

val dateToString = udf((date: java.sql.Date) => date.toString)

通过再执行一步并将java.sql.Date转换回字符串来解决此问题。使用自定义项:

val dateToString = udf((date: java.sql.Date) => date.toString)

执行df2.show()时会发生什么?您能在不使用日期转换的情况下保存TOES()吗?@PaulBack show()时一切看起来都很好,日期被修剪为预期的yyyy-MM-dd。saveToEs()在没有cast的情况下抛出相同的错误,并且您修改了ES端的索引以期望字符串类型?@PaulBack一件奇怪的事情是,当我获取随机creationdate并获取其类型java.sql.Date时,ES指南显示它必须是org.apache.spark.sql.types.DateTypeYes类型,它没有问题接受它们为string@PaulBackWhat在执行df2.show()时发生?您能在不使用日期转换的情况下保存TOES()吗?@PaulBack show()时一切看起来都很好,日期被修剪为预期的yyyy-MM-dd。saveToEs()在没有cast的情况下抛出相同的错误,并且您修改了ES端的索引以期望字符串类型?@PaulBack一件奇怪的事情是,当我获取随机creationdate并获取其类型java.sql.Date时,ES指南显示它必须是org.apache.spark.sql.types.DateTypeYes类型,它没有问题接受它们为string@PaulBack