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>

相關問題