我试图估计PySpark3.0.1中数据块上数学分数的比例。有些情况下,我的总分是0。所以我写了下面的代码
df_data.registerTempTable('myTable')
df_oversees2=SQLContext.sql("select A.*,case when total_marks=0 then 0 else (maths_marks/total_marks) end as prop_maths from myTable A ")
但我收到了错误信息
TypeError: sql() missing 1 required positional argument: 'sqlQuery'
你能帮我解决这个问题吗?我还用下面的代码验证了我的总分和数学分在我的表中
df1 = sqlContext.sql("select maths_marks,total_marks from myTable")
df1.show()
我看到两个字段的输出
1条答案
按热度按时间bjp0bcyl1#
SQLContext
不同于sqlContext
-后者是一个SQLContext
附属于SparkContext
前者是一个不附属于任何SparkContext
. 因此,您需要:在任何情况下,都不赞成使用它,最好的方法是调用
哪里
spark
是一个sparkSession
对象。