下面是Pandas代码,它返回输出
df_cols = df.columns.tolist()
spark_df_cols = spark_df['dic'].tolist()
i_names = []
i_quant = []
for i in df_cols:
if i in spark_df_cols:
i_names.append(i)
i_quant.append(df[i].quantile(0.9))
df_1 = pd.DataFrame({'dic': i_names, 'Pe
根据,百分位数命令应该给出每个数字列的确切百分位数。至少当我的输入是由浮点数组成时--这不是真的。
在中,它说百分位数命令只适用于整数。我不明白星星之火sql和hive之间的关系,但它似乎不是只运行hive --否则它就不会更改它的文档。另外,spark的percentile有一个不同的签名,允许它获得一个frequency参数,我也不知道它有什么用途。这是一个具有意外输出的示例:
from pyspark.sql import functions as sf
d = spark.createDataFrame([[35.138071000000004], [34.1199329999999
我有Array[Row],但实际上它总是只包含一个具有双值的Row。我想将这个双值提取到参数param1中。
val q1 = spark.sql("SELECT PERCENTILE(price,0.25) FROM table").collect()
val param1 = q1.mkString(",").toDouble
但我知道这个错误:
17/11/20 14:05:52 ERROR ApplicationMaster: User class threw exception: java.lang.NumberFormatException: Fo
我正在创建一个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(&
在spark.sql查询中注册和使用pyspark version 3.1.2内置函数的正确方式是什么? 下面是一个创建pyspark DataFrame对象并在纯SQL中运行简单查询的最小示例。 尝试使用...TypeError: Invalid argument, not a string or column: -5 of type <class 'int'>. For column literals, use 'lit', 'array', 'struct' or 'create_map' fu
我有两个数据文件,如下所示。
dataframe1 =
Index features constant
0 AA 0.25
1 AB 0.45
2 AC 0.78
3 AD 0.91
4 AE 0.12
dataframe2 =
Index AA AB AC AD AE
0 10 45 15 14 98
1 14 55 55 48 70
2 25 75
我是新来的火花环境。我有列名如下的数据集:
user_id,Date_time,order_quantity
我要计算每一个order_quantity的第90个百分位数。
如果是sql,我将使用以下查询:
%sql
SELECT user_id, PERCENTILE_CONT ( 0.9 ) WITHIN GROUP (ORDER BY order_quantity) OVER (PARTITION BY user_id)
但是,spark没有内置的支持使用percentile_cont函数的支持。
对于我如何在上面的数据集中实现这一点,有什么建议吗?如果需要更多的信息,请告诉我。
我已经给出了示例表。我想从"value“列获得每组"source”列的中位数。其中,源列是字符串,DataType值列是双DataType
scala> sqlContext.sql("SELECT * from tTab order by source").show
+---------------+-----+
| Source|value|
+---------------+-----+
|131.183.222.110
这应该是非常简单的,但作为SQL的新手,我真的很挣扎。有人建议我对连续(非离散)数据使用PERCENTILE_CONT。
所讨论的数据涉及两列:(1)患者列表的in和(2)每年的平均事件数。
使用我在网上找到的一些代码,这就是我要做的
SELECT ID,
percentile_cont (0.25) WITHIN GROUP
(ORDER BY PPPY ASC) OVER(PARTITION BY ID) as percentile_25,
percentile_cont (0.50) WITHIN GROUP
(ORDER BY PPPY ASC) OVER(PARTITION BY I
我是新来的火花/斯卡拉。我正在尝试读取一些数据从一个蜂窝表到一个火花数据,然后添加一个列的基础上的一些条件。这是我的代码:
val DF = hiveContext.sql("select * from (select * from test_table where partition_date='2017-11-22') a JOIN (select max(id) as bid from test_table where partition_date='2017-11-22' group by at_id) b ON a.id=b.bid")
我已经在基于SP3的SLES 11的HDP2.3上安装了Vora1.2。
当我试图按照新安装和管理手册第2.7节(第34页)对Vora进行基于命令行的验证时,我现在得到了一个新的错误:
scala> vc.sql(testsql)
com.sap.spark.vora.discovery.DiscoveryException: Could not connect to Consul Agent on localhost:8500 : null at
com.sap.spark.vora.discovery.ConsulDiscoveryClient$ConsulDisc
下面的代码可以正常工作,直到我在show之后添加agg。为什么show是不可能的?
val tempTableB = tableB.groupBy("idB")
.agg(first("numB").as("numB")) //when I add a .show here, it doesn't work
tableA.join(tempTableB, $"idA" === $"idB", "inner")
.drop("idA", "numA"
我试图使用星火红移库,并且无法操作由sqlContext.read()命令创建的数据(从redshift读取)。
这是我的代码:
Class.forName("com.amazon.redshift.jdbc41.Driver")
val conf = new SparkConf().setAppName("Spark Application").setMaster("local[2]")
val sc = new SparkContext(conf)
import org.apache.spark.sql._
val sqlContext
我学的是火种。例如,我正在尝试从sql构建DataFrame
DF=spark.sql("with a as (select ....) select ...")
我的sql有点复杂,所以要执行20分钟。我觉得DF是对我的SQL的引用,它意味着当我执行DF.head(10)需要20分钟,下一步DF.count()也需要20分钟等等。
我想让DataFrame像熊猫一样在内存中有价值,其中DF.head(10),DF.count()需要几秒钟。
我唯一能想到的方法是使用"create“,例如:
xx=spark.sql("create table yyy as w