Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 如何从配置单元外部表创建数据帧_Hadoop_Apache Spark_Dataframe_Hive_Apache Spark Sql - Fatal编程技术网

Hadoop 如何从配置单元外部表创建数据帧

Hadoop 如何从配置单元外部表创建数据帧,hadoop,apache-spark,dataframe,hive,apache-spark-sql,Hadoop,Apache Spark,Dataframe,Hive,Apache Spark Sql,我们喜欢在配置单元外部表的顶部创建dataframe,并使用配置单元模式和数据进行spark级别的计算 我们可以从配置单元外部表中获取模式,并将其用作数据帧模式。启用配置单元的Spark可以立即执行此操作。请参考 启用配置单元的Spark可以立即执行此操作。请参考 配置单元元存储知道表的模式,并将此信息传递给spark。表是否是外部的并不重要: val df = sqlContext.table(tablename) 其中sqlContext的类型为HiveContext。您可以使用验证模式

我们喜欢在配置单元外部表的顶部创建dataframe,并使用配置单元模式和数据进行spark级别的计算


我们可以从配置单元外部表中获取模式,并将其用作数据帧模式。

启用配置单元的Spark可以立即执行此操作。请参考


启用配置单元的Spark可以立即执行此操作。请参考


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

val df = sqlContext.table(tablename)
其中
sqlContext
的类型为
HiveContext
。您可以使用验证模式

df.printSchema

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

val df = sqlContext.table(tablename)
其中
sqlContext
的类型为
HiveContext
。您可以使用验证模式

df.printSchema

要从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");

这里的
数据
将是您的数据框,其中包含配置单元表的架构。

要从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");

这里
数据
将是您的数据框,其中包含配置单元表的架构。

在数据框中加载数据

df=sqlContext.sql("select * from hive_table")
使用structTypes获取架构

df.schema
获取配置单元表的列名

df.columns
获取具有数据类型的列名

df.dtypes

在数据帧中加载数据

df=sqlContext.sql("select * from hive_table")
使用structTypes获取架构

df.schema
获取配置单元表的列名

df.columns
获取具有数据类型的列名

df.dtypes

您可以在
toDF()


您可以在
toDF()


我不完全确定,但我认为这对Spark来说没有什么区别,你有什么样的蜂巢桌。至于模式,您能提供更多关于您在配置单元表中使用的数据格式的详细信息吗?我们正在使用带有out头的csv数据文件,并且当前已在这些文件上创建了外部文件,因此,我们喜欢使用配置单元外部表模式来创建数据帧。您考虑过接受答案吗?您考虑过接受答案吗?我不完全确定,但我认为这对您拥有的配置单元表的类型没有任何影响。至于模式,您能提供更多关于您在配置单元表中使用的数据格式的详细信息吗?我们正在使用带有out头的csv数据文件,并且当前已在这些文件上创建了外部文件,因此,我们喜欢使用配置单元外部表模式来创建数据帧。您考虑过接受答案吗?您考虑过接受答案吗?Raphael Roth通过
sqlContext.table(tablename)
Raphael Roth通过
sqlContext.table(tablename)提供了更干净的解决方案
同样的方法也适用于SparkSession(我怀疑创建SparkSession时必须使用enableHiveSupport())。同样的方法也适用于SparkSession(我怀疑创建SparkSession时必须使用enableHiveSupport())。