PySpark 和 HIVE/Impala

Posted

技术标签:

【中文标题】PySpark 和 HIVE/Impala【英文标题】:PySpark and HIVE/Impala 【发布时间】:2017-02-22 14:20:48 【问题描述】:

我想在 PySpark 中构建一个分类模型。我对这个模型的输入是从 Hive 或 Impala 中选择查询或视图的结果。是否可以将此查询包含在 PySpark 代码本身中,而不是将结果存储在文本文件中提供给我们的模型

【问题讨论】:

【参考方案1】:

是的,您需要将 HiveContext 与 sparkContext 一起使用。 这是示例:-

sqlContext = HiveContext(sc)
tableData = sqlContext.sql("SELECT * FROM TABLE")
#tableData is a dataframe containing reference to schema of table, check this using tableData.printSchema()
tableData.collect() #collect executes query and provide all rows from sql

或者你可以参考这里 https://spark.apache.org/docs/1.6.0/sql-programming-guide.html

【讨论】:

非常感谢您的快速回复。所以 tableData 将是我要建模的输入数据吗?我的整个目标是一旦我每天运行 pyspark logit 回归代码,我的回归模型应该可以工作,并且我的模型的数据应该包括我的数据集中的最新更新记录(训练和测试) @RRAMESHNAIK 是的,表格数据将直接输入到您的模型中。 非常感谢拉克什。另一件事是我们必须将我们的数据正确地转换为 RDD。所以 tableData.collect() 的结果是一个原始数据或者它已经是一个 RDD。我的意思是应该将其转换为 RDD 吗? @RRAMESHNAIK 您可以将其转换为 rdd,如 tableData.rdd 但是,您如何提供在 pyspark 中连接 impala 的凭据?

以上是关于PySpark 和 HIVE/Impala的主要内容,如果未能解决你的问题,请参考以下文章

Pyspark:从 Python 到 Pyspark 实现 lambda 函数和 udf

如何在 pyspark.sql.functions.pandas_udf 和 pyspark.sql.functions.udf 之间进行选择?

PySpark|从Spark到PySpark

PySpark 和 Spark 有啥区别?

如何使用 PySpark、SparkSQL 和 Cassandra?

PySpark 和 HIVE/Impala