【问题标题】:TypeError: sql() missing 1 required positional argument: 'sqlQuery' in pyspark类型错误:sql() 缺少 1 个必需的位置参数:pyspark 中的“sqlQuery”
【发布时间】:2021-05-18 07:40:57
【问题描述】:

我正在尝试估计 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 ")

但我收到错误消息

TypeError: sql() missing 1 required positional argument: 'sqlQuery'

你能帮我解决这个问题吗? 我还使用以下代码验证了我的 total_marks 和 maths_marks 存在于我的表中

df1 = sqlContext.sql("select maths_marks,total_marks from myTable")
df1.show()

我看到了两个字段的输出

【问题讨论】:

    标签: apache-spark pyspark apache-spark-sql


    【解决方案1】:

    SQLContextsqlContext 不同 - 后者是附加到 SparkContextSQLContext,而前者是不附加到任何 SparkContext 的类。因此,您需要这样做:

    sqlContext = SQLContext(sc)
    df_oversees2 = sqlContext.sql("your query")
    

    无论如何,它已被弃用,更好的方法是调用

    spark.sql("your query")
    

    其中sparksparkSession 对象。

    【讨论】:

    • 我用 spark.sql 收到了parse exception
    • 我已经解决了这个问题。错误地给出了一个“#”。删除了它,现在它正在运行
    猜你喜欢
    • 2020-05-26
    • 2022-01-11
    • 2018-09-12
    • 2021-08-05
    • 2021-07-06
    • 2021-08-05
    • 2017-07-23
    • 2020-12-11
    相关资源
    最近更新 更多