如何在没有Scala的情况下测试Spark SQL查询

如何在没有Scala的情况下测试Spark SQL查询,scala,cassandra,apache-spark,datastax-enterprise,apache-spark-sql,Scala,Cassandra,Apache Spark,Datastax Enterprise,Apache Spark Sql,我正试图找出如何针对Cassandra数据库测试Spark SQL查询,就像您在SQLServerManagementStudio中所做的那样。目前,我必须打开Spark控制台并键入Scala命令,这非常繁琐且容易出错 比如: scala > var query = csc.sql("select * from users"); scala > query.collect().foreach(println) 特别是对于较长的查询,这可能是一个真正的痛苦 这似乎是一种非常低效的方法

我正试图找出如何针对Cassandra数据库测试Spark SQL查询,就像您在SQLServerManagementStudio中所做的那样。目前,我必须打开Spark控制台并键入Scala命令,这非常繁琐且容易出错

比如:

scala > var query = csc.sql("select * from users");
scala > query.collect().foreach(println)
特别是对于较长的查询,这可能是一个真正的痛苦

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

您可以使用bin/spark sql来避免构造Scala程序,而只编写sql

为了使用bin/spark sql,您可能需要使用-Phive和-Phive-thriftserver重建spark


更多信息。注意:不要根据Scala2.11构建,thrift服务器依赖项目前似乎还没有准备好。

您可以在文件中编写SQL,在测试脚本中的变量中读取SQL,并设置ssc.sqlfile.read[Python way]

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

以下是一个示例:

[donghua@vmxdb01~]$$SPARK_HOME/bin/SPARK sql-packagesdatasax:SPARK-cassandra连接器:2.0.0-M2-s_2.11-conf SPARK.cassandra.connection.host=127.0.0.1

spark sql>从kv中选择*,其中值>2

查询错误:未找到表或视图:kv;第1行位置14

spark sql>使用org.apache.spark.sql.cassandra选项创建临时表kv,键空间mykeyspace,集群测试集群,下推true

16/10/12 08:28:09警告SparkStrategies$DDLStrategy:使用创建临时表。。。已弃用,请使用创建临时视图视图名。。。相反 所用时间:4.008秒

spark sql>从kv中选择*; 关键1 关键4 关键3 关键2 所用时间:2.253秒,获取4行

spark sql>从kv中选择子字符串键1,3; 钥匙 钥匙 钥匙 钥匙 所用时间:1.328秒,获取4行

spark sql>选择子字符串键1,3,按子字符串键1,3从kv组中计数*; 关键4 所用时间:3.518秒,获取1行
spark sql>

可能是因为我使用的是DataStax Enterprise,但在我的系统上看不到spark sql。Spark是预安装的,但它可能不是完整版本???@KingOfHypocrites,我恐怕是这样,你可以在那里看到Spark sql,在今天退出的DSE 4.7的apache sparkAs中,ThirtServer通过DSE start Spark sql ThriftServer得到支持。是的,某种web或桌面UI,我可以在其中粘贴查询并执行它们。