关于sparksql 接参数的错误,大佬来看看啊

toward_south 2019-07-01 09:56:27
今天写spark sql的时候

String sex = "F";
//创建临时视图
sparkSession.read().jdbc(url, "user", properties).createOrReplaceTempView("user");
Dataset<Row> user = sparkSession.sql("select id,UserID,Gender,Age from user where Gender = " +sex);


想在 这条语句后面加个参数,但是发现 这个 sex 一直编译失败


21:43:01.340 [main] INFO org.apache.spark.sql.execution.streaming.state.StateStoreCoordinatorRef - Registered StateStoreCoordinator endpoint
21:43:03.844 [main] DEBUG org.apache.spark.sql.execution.SparkSqlParser - Parsing command: user
21:43:04.362 [main] DEBUG org.apache.spark.sql.execution.SparkSqlParser - Parsing command: select id,UserID,Gender,Age from user where Gender = F
21:43:04.877 [main] DEBUG org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveReferences - Resolving 'Gender to Gender#2
21:43:04.879 [main] DEBUG org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveReferences - Resolving 'F to 'F
21:43:04.913 [main] DEBUG org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveReferences - Resolving 'F to 'F



Exception in thread "main" org.apache.spark.sql.AnalysisException: cannot resolve '`F`' given input columns: [user.zipcode, user.Gender, user.Age, user.Occupation, user.UserID, user.id]; line 1 pos 53;
'Project ['id, 'UserID, 'Gender, 'Age]
+- 'Filter (Gender#2 = 'F)
+- SubqueryAlias `user`
+- Relation[id#0,UserID#1,Gender#2,Age#3,Occupation#4,zipcode#5] JDBCRelation(user) [numPartitions=1]



也就是说这个sex值能传进去,但是sql语句却编译失败,我个人猜想是少了那个双引号,但是怎么把双引号也拼接进去呢,或者有其他的解决办法,希望大牛能帮帮忙
...全文
405 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
心怀啊 2019-07-02
  • 打赏
  • 举报
回复
反斜杠加单引号或者双引号
zijiang001 2019-07-02
  • 打赏
  • 举报
回复
where Gender = '" +sex + "'"); 字符串类型需要加上''
内容概要:本文围绕“基于超局部模型与自抗扰ESO观测器的无模型预测电流控制改进策略”展开研究,提出一种结合超局部模型(ULM)与扩张状态观测器(ESO)的无模型预测电流控制(MFPCC)改进方法,旨在提升永磁同步电机(PMSM)电流环的动态响应性能与抗干扰能力。该策略利用超局部模型对系统行为进行局部逼近,避免依赖精确数学模型,同时引入自抗扰控制中的ESO实时观测并补偿系统内外部扰动,有效抑制参数摄动、负载变化及模型不确定性带来的影响。研究通过Simulink搭建完整的控制系统仿真模型,对传统MFPCC与所提改进策略进行对比分析,验证了新方法在电流跟踪精度、响应速度和鲁棒性方面的优越性。; 适合人群:具备电机控制、现代控制理论及Simulink仿真基础的电气工程、自动化及相关专业的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于高性能电机驱动系统中电流环控制器的设计与优化;②为无模型控制与自抗扰控制的融合应用提供技术参考;③支撑相关课题的仿真验证、论文复现与创新方法研究。; 阅读建议:建议读者结合Simulink仿真模型深入理解控制结构与参数整定过程,重点关注ESO的观测性能与扰动补偿机制,并可通过改变负载条件、参数偏差等工况进行鲁棒性测试,进一步掌握该改进策略的核心优势与适用边界。

51,409

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧