Apache spark 如何在Jupyter的一个单元格中创建多个临时表?
我将Azure上的Spark 2.1(HDInsight)与Jupyter笔记本一起使用 我无法在一个笔记本单元中创建多个表 以下查询工作正常:Apache spark 如何在Jupyter的一个单元格中创建多个临时表?,apache-spark,apache-spark-sql,jupyter-notebook,azure-hdinsight,Apache Spark,Apache Spark Sql,Jupyter Notebook,Azure Hdinsight,我将Azure上的Spark 2.1(HDInsight)与Jupyter笔记本一起使用 我无法在一个笔记本单元中创建多个表 以下查询工作正常: %%sql create table if not exists temp1(Col varchar(32)) 返回:没有结果 以下查询在单个单元格中不起作用: %%sql create table if not exists temp2(Col varchar(32)) create table if not exists temp3(Col
%%sql
create table if not exists temp1(Col varchar(32))
返回:没有结果
以下查询在单个单元格中不起作用:
%%sql
create table if not exists temp2(Col varchar(32))
create table if not exists temp3(Col varchar(32))
遇到错误:
org.apache.spark.sql.catalyst.parser.ParseException:输入不匹配
应为“创建”(第3行,位置0)
==SQL==
创建表如果不存在temp2(Col varchar(32))创建表如果不存在
存在temp3(Col varchar(32))^^^
在
org.apache.spark.sql.catalyst.parser.ParseException.withCommand(ParseDriver.scala:197)
在
org.apache.spark.sql.catalyst.parser.AbstractSqlParser.parse(ParseDriver.scala:99)
在
org.apache.spark.sql.execution.SparkSqlParser.parse(SparkSqlParser.scala:45)
在
org.apache.spark.sql.catalyst.parser.AbstractSqlParser.parsePlan(ParseDriver.scala:53)
位于org.apache.spark.sql.SparkSession.sql(SparkSession.scala:592)。。。
47删去
如何在一个单元格中创建多个表?在Jupyter中,使用sql
解释器的单个单元格似乎对应于Spark执行的单个sql查询
一种可能的解决方法是使用spark
解释器(或scala
)并执行spark.SQL
中的SQL语句,如下所示:
%%spark
spark.sql("create table if not exists temp2(Col varchar(32))")
spark.sql("create table if not exists temp3(Col varchar(32))")
这应该是可行的。似乎Jupyter中带有sql
解释器的单个单元格对应于Spark执行的单个sql查询
一种可能的解决方法是使用spark
解释器(或scala
)并执行spark.SQL
中的SQL语句,如下所示:
%%spark
spark.sql("create table if not exists temp2(Col varchar(32))")
spark.sql("create table if not exists temp3(Col varchar(32))")
这应该是可行的。如果在
SparkSession.sql
之后执行AbstractSqlParser
中的堆栈跟踪,则不要这样认为。换句话说,您可以使用SQL
操作符执行两个完整的SQL语句吗?或者Jupyter解析代码>特别???不知道,我不这么认为<代码>spark sql
shell不受一行中多个语句的困扰,因此它不应该是一个硬限制。不管怎样,只是在这里钓鱼。我不知道如何实现%%sql
魔术。对sparksql
与配合使用效果良好代码>即使在一行上。@zero323添加
gives遇到错误:org.apache.spark.sql.catalyst.parser.ParseException:输入不匹配“;”如果在SparkSession.sql
之后执行的AbstractSqlParser
中的堆栈跟踪,则预期@JacekLaskowskispark.sql(“创建表如果不存在temp2(Col varchar(32));创建表如果不存在temp3(Col varchar(32))
不起作用。换句话说,您可以使用SQL
操作符执行两个完整的SQL语句吗?或者Jupyter解析代码>特别???不知道,我不这么认为<代码>spark sql
shell不受一行中多个语句的困扰,因此它不应该是一个硬限制。不管怎样,只是在这里钓鱼。我不知道如何实现%%sql
魔术。对sparksql
与配合使用效果良好代码>即使在一行上。@zero323添加
gives遇到错误:org.apache.spark.sql.catalyst.parser.ParseException:输入不匹配“;”预期
@JacekLaskowskispark.sql(“如果不存在则创建表temp2(Col varchar(32));如果不存在则创建表temp3(Col varchar(32))”
不起作用