我已经写了一些本地主机支持的查询,但是当我上传到服务器时,它在查询中显示了一些错误。
我的查询
grouped = candidateWithTreatment.map(row => (row.getString(2) + "-" + row.getString(4), List(row))).reduceByKey(_ ::: _)
grouped.foreachRDD(eachRDD => {
// create spark session or sqlcontext
eachRDD.foreach(eachRow => {
val rowsRDD = sqlContext.sparkContext.parallelize[Row](rows)
val eachDF = sqlContext.createDataFrame(rowsRDD, columnSchema)
eachModelDF.createOrReplaceTempView("table")
val filteredDF = sqlContext.sql("select from table based on my dynamically generated sql"))
.limit(fLimit.toInt).limit(sLimit.toInt)
})
})
答案 0 :(得分:0)
如果您有足够的权限,可以尝试使用此方法
set global sql_mode = 'NO_ENGINE_SUBSTITUTION';
但是我认为这不是一个好的解决方案。
答案 1 :(得分:0)
发生错误是因为您对“金额”(SUM(Amount)
)进行汇总,而不是对您使用的其他字段进行汇总。
激活“ only_full_group_by”模式并至少进行一次汇总时,需要对所有未包含在“ group by”子句中的字段进行汇总。
您可以对您使用的所有其他字段进行类似min(), max(), sum(), ...
的聚合,也可以在MySql服务器上停用该模式。