如何从配置单元外部表创建Dataframe

gab6jxml  于 2021-06-02  发布在  Hadoop
关注(0)|答案(5)|浏览(368)

我们喜欢在hiveexternal表之上创建dataframe,并使用hiveschema和数据在spark级别进行计算。
我们可以从配置单元外部表中获取模式并将其用作Dataframe模式吗。

ryhaxcpt

ryhaxcpt1#

启用配置单元的spark可以在开箱即用的情况下完成此操作。请参考文件。

val dataframe = spark.sql("SELECT * FROM table")
val schema = dataframe.schema
gtlvzcf8

gtlvzcf82#

在Dataframe中加载数据

df=sqlContext.sql("select * from hive_table")

获取具有structtypes的架构

df.schema

获取配置单元表的列名

df.columns

获取具有数据类型的列名

df.dtypes
mfuanj7w

mfuanj7w3#

您可以使用自己的列名创建dataframe toDF() ```
df = spark.sql("select * from table").toDF(col1,col2)

a9wyjsp7

a9wyjsp74#

配置单元元存储知道表的模式,并将此信息传递给spark。表是否是外部的并不重要:

val df = sqlContext.table(tablename)

哪里 sqlContext 属于类型 HiveContext . 您可以使用验证您的架构

df.printSchema
bttbmeg0

bttbmeg05#

要从spark访问配置单元表,请使用spark HiveContext ```
import org.apache.spark.sql.hive.HiveContext;

val sc = new SparkContext(conf)
val sqlContext = new HiveContext(sc)
.
.
do other stuff..then
.
.

val data = sqlContext.sql("select * from hive_table");

在这里 `data` 将是具有配置单元表架构的Dataframe。

相关问题