'sparkR sql() returns string
We have parquet
data saved on a server and I am trying to use SparkR
sql()
function in the following ways
df <- sql("SELECT * FROM parquet.`<path to parquet file`")
head(df)
show(df) # returns "<SQL> SELECT * FROM parquet.`<path to parquet file`"
and
createOrReplaceTempView(df, "table")
df2 <- sql("SELECT * FROM table")
show(df2) # returns "<SQL> SELECT * FROM table"
In both cases what I get is the sql query in a string format instead of the spark dataframe. Does anyone have any idea why this happens and why I don't get the dataframe?
Thank you
Solution 1:[1]
Don't use the show
statement use showDF()
...or, View(head(df2, num=20L))
Solution 2:[2]
This was a very silly problem. The solution is to just use the full name of the method
SparkR::sql(...)
instead of the short name. Apparently the function sql
is masked.
Solution 3:[3]
show method documentation in sparkR states that if eager evaluation is not enabled it returns the class and type information of the Spark object. so you should use showDF instead.
besides that, apparently, the sql
method is masked in R
and you should call it with explicit package deceleration. like this:
df <- SparkR::sql("select 1")
showDF(df)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | nate |
Solution 2 | Ashkan |
Solution 3 | Javad Bahoosh |