JDo*_*Doe 1 apache-spark apache-spark-sql pyspark
我正在尝试估计数据块上 pyspark 3.0.1 中数学分数的比例。有些情况下我的total_marks是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 ")
Run Code Online (Sandbox Code Playgroud)
但我收到错误消息
TypeError: sql() missing 1 required positional argument: 'sqlQuery'
Run Code Online (Sandbox Code Playgroud)
您能帮我解决这个问题吗?我还使用下面的代码验证了我的 Total_marks 和 maths_marks 是否存在于我的表格中
df1 = sqlContext.sql("select maths_marks,total_marks from myTable")
df1.show()
Run Code Online (Sandbox Code Playgroud)
我看到两个字段的输出
SQLContext不同的是sqlContext- 后者是一个SQLContext附加到 a 的类SparkContext,而前者是一个不附加到 any 的类SparkContext。因此,您需要执行以下操作:
sqlContext = SQLContext(sc)
df_oversees2 = sqlContext.sql("your query")
Run Code Online (Sandbox Code Playgroud)
无论如何,它已被弃用,更好的方法是调用
spark.sql("your query")
Run Code Online (Sandbox Code Playgroud)
其中spark是一个sparkSession对象。
| 归档时间: |
|
| 查看次数: |
4591 次 |
| 最近记录: |