You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@spark.apache.org by Mich Talebzadeh <mi...@peridale.co.uk> on 2016/02/07 21:17:47 UTC
Advise on using spark shell for Hive table sql queries
Hi,
Pretty new to spark shell.
So decided to write this piece of code to get the data from spark shell on
Hiver tables. The issue is that I don't really need to define the sqlContext
here as I can do a simple command like sql("select count(1) from t") WITHOUT
sqlContext. sql("select count(1) from t")
Also I found out that I can write multiple sql lines using three quotation
--> """"code..........."""
Are there other ways of writing multi line sql code?
The code works fine, However, any improvements will be welcome
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
var sqltext : String = ""
sqltext = "use oraclehadoop"
sqlContext.sql(sqltext)
sqlContext.sql("SELECT FROM_unixtime(unix_timestamp(), 'dd/MM/yyyy
HH:mm:ss.ss') AS StartTime").show()
println("\n Running the query \n")
sqltext = """
SELECT c.country_name AS nation,
s.year,
s.month,
sum (amount_sold) AS salesamount
FROM countries c
INNER JOIN customers cs
ON c.country_id = cs.country_id
INNER JOIN sales s
ON cs.cust_id = s.cust_id
GROUP BY country_name, s.year, s.month
ORDER BY country_name, s.year, s.month
"""
// sql(sqltext)show(99999999)
sqlContext.sql(sqltext).collect.foreach(println)
sqlContext.sql("SELECT FROM_unixtime(unix_timestamp(), 'dd/MM/yyyy
HH:mm:ss.ss') AS EndTime").show()
sys.exit()
Regards,
Mich
<http://talebzadehmich.wordpress.com/> http://talebzadehmich.wordpress.com
NOTE: The information in this email is proprietary and confidential. This
message is for the designated recipient only, if you are not the intended
recipient, you should destroy it immediately. Any information in this
message shall not be understood as given or endorsed by Peridale Technology
Ltd, its subsidiaries or their employees, unless expressly so stated. It is
the responsibility of the recipient to ensure that this email is virus free,
therefore neither Peridale Technology Ltd, its subsidiaries nor their
employees accept any responsibility.