gpt4 book ai didi

apache-spark - Zeppelin - 无法使用 %sql 查询我在 pyspark 注册的表

转载 作者:行者123 更新时间:2023-12-04 12:18:25 25 4
gpt4 key购买 nike

我是 spark/zeppelin 的新手,我想完成一个简单的练习,我将把 csv 文件从 pandas 转换为 Spark 数据框,然后注册表以使用 sql 查询它并使用 Zeppelin 对其进行可视化。

但我似乎在最后一步失败了。

我正在使用 Spark 1.6.1

这是我的代码:

%pyspark
spark_clean_df.registerTempTable("table1")
print spark_clean_df.dtypes
print sqlContext.sql("select count(*) from table1").collect()

这是输出:
[('id', 'bigint'), ('name', 'string'), ('host_id', 'bigint'), ('host_name', 'string'), ('neighbourhood', 'string'), ('latitude', 'double'), ('longitude', 'double'), ('room_type', 'string'), ('price', 'bigint'), ('minimum_nights', 'bigint'), ('number_of_reviews', 'bigint'), ('last_review', 'string'), ('reviews_per_month', 'double'), ('calculated_host_listings_count', 'bigint'), ('availability_365', 'bigint')]
[Row(_c0=4961)]

但是当我尝试使用 %sql 时出现此错误:
%sql
select * from table1

Table not found: table1; line 1 pos 14
set zeppelin.spark.sql.stacktrace = true to see full stacktrace

任何帮助将不胜感激 - 我什至不知道在哪里可以找到这个堆栈跟踪以及它如何帮助我。

谢谢 :)

最佳答案

Zeppelin 可以为不同的解释器创建不同的上下文,如果您使用 %spark 执行某些代码和使用 %pyspark 解释器执行某些代码,您的 Zeppelin 可能有两个上下文。当您使用 %sql 时,它会在另一个上下文中查找而不是在 %pyspark 中。
尝试重新启动 Zeppelin 并执行 %pyspark 代码作为第一条语句,而不是 %sql 作为第二条语句。

如果您转到“解释器”选项卡,您可以在那里添加 zeppelin.spark.sql.stacktrace。重新启动 Zeppelin 后,您将在现在“找不到表”的地方看到完整的堆栈跟踪。

其实这可能是你问题的答案
When registering a table using the %pyspark interpreter in Zeppelin, I can't access the table in %sql

试着做

    %pyspark
sqlContext = sqlc

作为前两行

关于apache-spark - Zeppelin - 无法使用 %sql 查询我在 pyspark 注册的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37576042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com