下面是我在dataframe中与python一起使用sql的脚本:
pyspark --packages com.databricks:spark-csv_2.10:1.4.0
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
df = sqlContext.read.format('com.databricks.spark.csv').options(header='true', inferschema='true').load('file:///root/Downloads/data/flight201601short.csv')
测向显示(5) 显示结果如下:
然后我将数据帧注册到临时表:
df.registerTempTable("flight201601")
并尝试运行以下sql查询:
sqlContext.sql("select distinct CARRIER from flight201601")
它不会产生预期的结果,相反:
我也试过:
sqlContext.sql("select * from flight201601")
它给了我:
所以看来registerEmptable方法只创建表模式,而表没有填充,我缺少什么?
必须对由
sqlContext.sql
返回的数据帧调用show()
方法才能获得查询结果。检查火花,上面写着@PasLeChoix酒店
当您执行下面的语句时 sqlContext.sql(“从flight201601中选择*”)
Spark将返回数据帧。因此,您需要将结果存储到DataFrame中,并使用show()命令将结果显示在@abaghel提到的控制台上。
默认情况下,每当Spark返回DataFrmae时,它只会在控制台上显示您的案例中的模式。
相关问题 更多 >
编程相关推荐