如何解决 SparkR 中的 "sql(sqlContext...)' is deprecated" 警告

How to resolve "sql(sqlContext...)' is deprecated" warning in SparkR

我正在使用 SparkR 构建一些旧代码的新版本。在这样的街区上

hiveContext <- sparkRHive.init(sc)
hive_db = 'our_database'
db <- sql(hiveContext, paste0("use ", hive_db))

有人告诉我 'sparkRHive.init' is deprecated. Use 'sparkR.session' instead. 所以,好的,很好,我现在有:

hiveContext <- sparkR.session(sc) 
hive_db = 'our_database'
db <- sql(hiveContext, paste0("use ", hive_db))

这会运行,但现在 Spark 警告 'sql(sqlContext...)' is deprecated. Use 'sql(sqlQuery)' instead. 我不知道它在这里期望什么样的输入,并且想解决这个问题。有人知道在这里做什么吗?

自 Spark 2.0 sql 和许多其他函数(如 createDataFrame)不需要 SQLContext 实例。只是:

sql(paste0("use ", hive_db))

在内部这将使用 getSparkSession 检索会话对象。