我正在创建hivecontext而不是sqlcontext来创建adtaframe
val conf=new SparkConf().setMaster("yarn-cluster")
val context=new SparkContext(conf)
//val sqlContext=new SQLContext(context)
val hiveContext=new HiveContext(context)
val data=Seq(1,2,3,4,5,6,7,8,9,10).map(x=>(x.toLong,x+1,x+2.toDouble)).toDF("ts","value","label")
//outdta is a dataframe
data.registerTempTable("df")
//val hiveTest=hiveContext.sql("SELECT * from df where ts < percentile(BIGINT ts, 0.5)")
val ratio1=hiveContext.sql("SELECT percentile_approx(ts, array (0.5,0.7)) from df")
我需要从ratio1中获得确切的配置单元上下文,而不是再次从dataframe中的povidedsql上下文中创建hivecontext,我不知道为什么spark不从dataframe中给我一个hivecontext,它只给SQLContext。
如果您使用hivecontext
,那么df.sqlcontext
的运行时类型是hivecontext
(hivecontext
是sqlcontext
)的子类型,因此可以执行以下操作:
val hiveContext = df.sqlContext.asInstanceOf[HiveContext]
我想从数据帧中获取列标题列表。数据帧将来自用户输入,因此我不知道将有多少列或它们将被调用。 例如,如果我得到这样的DataFrame: 我会得到这样的列表:
问题内容: 我想从获取列标题的列表。DataFrame来自用户输入,所以我不知道会有多少列或它们将被称为什么。 例如,如果给我这样的: 我想要一个这样的列表: 问题答案: 你可以执行以下操作以列表形式获取值: 你也可以简单地使用:(如Ed Chum的答案所示):
假设我有整数0到100的数据帧。我想把这些值分为3部分,低、中、高,低小于33,高大于66,中介于33和66之间。所以我用 我得到了一个错误 我已经尝试过if-else语句和以及其他操作符。低和高起作用,但中间不起作用。 请问我能知道附近的路吗?
我构造了一个从数据帧中提取一行条件: 现在我想从一个特定列中取一个值:
我已经生成了<code>pyspark.sql.dataframe。DataFrame带有列名称cast和score。 但是,我想在cast列中保留唯一的名字,而不是与它们相关联的id,与_score列并排。 列中数据类型的结构如下所示 有人可以帮助我如何提取只有演员姓名和分数列的数据。 提前致谢
问题内容: 我有带有take(5)最上面几行的Spark DataFrame,如下所示: 它的模式定义为: 如何从“日期”字段中获取年,月,日值? 问题答案: 从Spark 1.5开始,您可以使用许多日期处理功能: import datetime from pyspark.sql.functions import year, month, dayofmonth elevDF = sc.parall