scala - spark-submit '无法将'startDate'强制转换为格式化日期(长)'
问题描述
出现错误:错误:当我运行 spark submit 时,无法将“startDate”强制转换为格式化日期(长),如下所示:
dse -u cassandra -p cassandra spark-submit --class com.abc.rm.Total_count \
--master dse://x.x.x.x:9042 TotalCount.jar \
"2024-06-11 00:00:00.000+0000" "2027-11-15 00:00:00.000+0000" \
10-118-16-132.bbc.ds.com pramod history
下面是我的代码:
package com.abc.rm
import com.datastax.spark.connector._
import org.apache.spark.SparkContext
object Total_count {
def main(args: Array[String]):Unit = {
var startDate = args(0)
var endDate = args(1)
val master = args(2)
var ks = args(3)
var table_name = args(4)
println("startDate-->"+startDate)
println("endDate-->"+endDate)
println("master-->"+master)
val conf = new org.apache.spark.SparkConf().setAppName("Total_count")
.set("spark.cassandra.connection.host", master)
.set("spark.cassandra.auth.username","cassandra")
.set("spark.cassandra.auth.password","cassandra")
var sc = new SparkContext(conf)
val rdd = sc.cassandraTable("pramod", "history")
.where("sent_date>='startDate' and sent_date <='endDate'")
.cassandraCount()
println("count--> "+rdd)
sc.stop()
System.exit(1)
}}
如何传递/转换参数。
解决方案
您没有传递参数,而是传递字符串startDate
和endDate
字面意思。要使其正常工作,您需要将其编写为
.where(s"sent_date>='$startDate' and sent_date <='$endDate'")
推荐阅读
- spring-boot - 例外:com.fasterxml.jackson.databind.exc.InvalidDefinitionException:MultipartFile
- r - R - 如何将公式传递给 with(data, lm(y ~ x)) 构造
- php - whereHas vs join -> 应用全局范围
- python - 在此文件中编辑 pythonpath
- java - 编译程序时出现错误 'void' type not allowed here
- laravel - Laravel UpdateExistingPivot 不更新但同时不失败
- node.js - 通过 Angular CLI 创建新的 Angular 项目时出现意外的 json 错误结束
- c - 检查 CS50 哈佛现金应用程序中的 50 错误
- mysql - 在 MySQL 触发器中将值设置为变量
- python - 我想为 imread 目录编号