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 之间进行选择?