1

我想弄清楚如何测试对Cassandra数据库的Spark SQL查询 - 就像在SQL Server Management Studio中那样。目前我必须打开Spark控制台并输入Scala命令,这些命令非常繁琐且容易出错。如何在没有Scala的情况下测试Spark SQL查询

喜欢的东西:

scala > var query = csc.sql("select * from users"); 
scala > query.collect().foreach(println) 

特别是带有长查询,这可能是一个真正的痛苦。

这似乎是一个非常低效的方法来测试您的查询是否正确以及您将返回哪些数据。另一个问题是当您的查询错误时,您会收到一英里长的错误消息,并且您必须向上滚动控制台才能找到它。如何在不使用控制台或编写自己的应用程序的情况下测试我的Spark查询?

回答

2

您可以使用bin/spark-sql来避免构造Scala程序并只编写SQL。

为了使用bin/spark-sql您可能需要用-Phive-Phive-thriftserver重建您的火花。

更多关于Building Spark的信息。注意:不要针对Scala2.11构建,节俭服务器依赖关系目前似乎还没有准备好。

+0

也许是因为我使用DataStax企业,但没有火花SQL我的系统上,我可以看到。 Spark预装了,但它可能不是完整版本? – KingOfHypocrites

+0

@KingOfHypocrites,恐怕是这样,https://github.com/apache/spark/tree/master/bin,你可以在那里看到'spark-sql',在apache spark –

+0

从今天下降的DSE 4.7开始, thirftserver通过'dse start-spark-sql-thriftserver'支持 – phact

1

你可以写SQL在一个文件中,在您的测试脚本变量读取它,并设置ssc.sql(file.read())[Python的方式]

但似乎你正在寻找别的东西。测试方法可能是?

+0

是的,某种网页或桌面用户界面,我可以粘贴查询并执行它们。 – KingOfHypocrites

0

这里是一个例子:

[东华@ vmxdb01〜] $ $ SPARK_HOME/bin中/火花-SQL --packages datastax:火花卡桑德拉连接器:2.0.0-M2-s_2.11 - -conf spark.cassandra.connection.host = 127.0.0.1

spark-sql>select * from kv where value> 2;

查询中出错:未找到表或视图:kv; line 1 pos 14

spark-sql>create TEMPORARY TABLE kv ​​USING org.apache.spark.sql.cassandra OPTIONS(表“kv”,keyspace“mykeyspace”,cluster“Test Cluster”,pushdown“true”) ;

16/10/12 8时28分09秒WARN SparkStrategies $ DDLStrategy:CREATE TEMPORARY TABLE千伏,使用...已过时,请使用CREATE TEMPORARY VIEW视图使用...而不是采取 时间:4.008秒

spark-sql>select * from kv; KEY1 1
KEY4 4 KEY3 3 KEY2 2 耗时:2.253秒,所提取的4行(多个)

火花SQL>选择子串从KV(键,1,3); 钥匙
钥匙 钥匙 钥匙 所用时间:1。328,获取4行

spark-sql>从子串(key,1,3)中选择子串(key,1,3),count(*);采取 键4
时间:3.518秒拿了1行(S) 火花SQL>

相关问题