首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SparkSQL -直接读取拼花文件

SparkSQL -直接读取拼花文件
EN

Stack Overflow用户
提问于 2016-12-21 02:03:19
回答 4查看 109.4K关注 0票数 29

我正在从Impala迁移到SparkSQL,使用以下代码读取表:

代码语言:javascript
复制
my_data = sqlContext.read.parquet('hdfs://my_hdfs_path/my_db.db/my_table')

如何调用上面的SparkSQL,这样它就可以返回如下内容:

代码语言:javascript
复制
'select col_A, col_B from my_table'
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-12-21 02:14:28

在从parquet文件中创建Dataframe之后,您必须将其注册为临时表才能在其上运行sql queries

代码语言:javascript
复制
val sqlContext = new org.apache.spark.sql.SQLContext(sc)

val df = sqlContext.read.parquet("src/main/resources/peopleTwo.parquet")

df.printSchema

// after registering as a table you will be able to run sql queries
df.registerTempTable("people")

sqlContext.sql("select * from people").collect.foreach(println)
票数 48
EN

Stack Overflow用户

发布于 2017-03-09 06:30:33

使用普通SQL

JSON、ORC、Parquet和CSV文件可以被查询为,而无需在DataFrame上创建表。

代码语言:javascript
复制
//This Spark 2.x code you can do the same on sqlContext as well
val spark: SparkSession = SparkSession.builder.master("set_the_master").getOrCreate

spark.sql("select col_A, col_B from parquet.`hdfs://my_hdfs_path/my_db.db/my_table`")
   .show()
票数 36
EN

Stack Overflow用户

发布于 2020-02-09 19:21:28

假设您有HDFS中的拼花文件ventas4:

hdfs://localhost:9000/sistgestion/sql/ventas4 4

在这种情况下,步骤如下:

  1. 为SQL上下文充电: val sqlContext =新的org.apache.spark.sql.SQLContext(sc)
  2. 请阅读地板文件: val ventas=sqlContext.read.parquet("hdfs://localhost:9000/sistgestion/sql/ventas4")
  3. 注册一个时态表: ventas.registerTempTable("ventas")
  4. 执行查询(在这一行中,可以使用toJSON传递JSON格式,也可以使用collect()): sqlContext.sql("select * from ventas").toJSON.foreach(println(_)) sqlContext.sql("select * from ventas").collect().foreach(println(_))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41254011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档