spark dataframe 将一列展开,把该列所有值都变成新列的方法

The original dataframe

需求:hour代表一天的24小时,现在要将hour列展开,每一个小时都作为一个列

实现:

val pivots = beijingGeoHourPopAfterDrop.groupBy("geoHash").pivot("hour").sum("countGeoPerHour").na.fill(0)

并且统计了对应的countGeoPerHour的和,如果有些行没有这个新列对应的数据,将用null填充

The new dataframe

以上这篇spark dataframe 将一列展开,把该列所有值都变成新列的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 浅谈DataFrame和SparkSql取值误区

    1.DataFrame返回的不是对象. 2.DataFrame查出来的数据返回的是一个dataframe数据集. 3.DataFrame只有遇见Action的算子才能执行 4.SparkSql查出来的数据返回的是一个dataframe数据集. 原始数据 scala> val parquetDF = sqlContext.read.parquet("hdfs://hadoop14:9000/yuhui/parquet/part-r-00004.gz.parquet") df: or

  • spark: RDD与DataFrame之间的相互转换方法

    DataFrame是一个组织成命名列的数据集.它在概念上等同于关系数据库中的表或R/Python中的数据框架,但其经过了优化.DataFrames可以从各种各样的源构建,例如:结构化数据文件,Hive中的表,外部数据库或现有RDD. DataFrame API 可以被Scala,Java,Python和R调用. 在Scala和Java中,DataFrame由Rows的数据集表示. 在Scala API中,DataFrame只是一个类型别名Dataset[Row].而在Java API中,用户需要

  • spark dataframe 将一列展开,把该列所有值都变成新列的方法

    The original dataframe 需求:hour代表一天的24小时,现在要将hour列展开,每一个小时都作为一个列 实现: val pivots = beijingGeoHourPopAfterDrop.groupBy("geoHash").pivot("hour").sum("countGeoPerHour").na.fill(0) 并且统计了对应的countGeoPerHour的和,如果有些行没有这个新列对应的数据,将用null填

  • pandas和spark dataframe互相转换实例详解

    这篇文章主要介绍了pandas和spark dataframe互相转换实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 from pyspark.sql import SparkSession # 初始化spark会话 spark = SparkSession \ .builder \ .getOrCreate() spark_df = spark.createDataFrame(pandas_df) spark的dataframe转pa

  • pandas 取出表中一列数据所有的值并转换为array类型的方法

    如下所示: # -*-coding: utf-8 -*- import pandas as pd #读取csv文件 df=pd.read_csv('A_2+20+DoW+VC.csv') #求'ave_time'的平均值 aveTime=df['ave_time'].mean() #把ave_time这列的缺失值进进行填充,填充的方法是按这一列的平均值进行填充 df2=df.fillna(aveTime) #取表中的第3列的所有值 col=df2.iloc[:,2] #取表中的第3列的所有值 a

  • pandas按照列的值排序(某一列或者多列)

    按照某一列排序 d = {'A': [3, 6, 6, 7, 9], 'B': [2, 5, 8, 0, 0]} df = pd.DataFrame(data=d) print('排序前:\n', df) ''' 排序前: A B 0 3 2 1 6 5 2 6 8 3 7 0 4 9 0 ''' res = df.sort_values(by='A', ascending=False) print('按照A列的值排序:\n', res) ''' 按照A列的值排序: A B 4 9 0 3 7

  • pandas添加新列的5种常见方法

    目录 前言 一.insert()函数 二.直接赋值法 三.reindex()函数 四.concat()函数 五.loc()函数 附:pandas根据现有列新添加一列 总结 前言 pandas为DataFrame格式数据添加新列的方法非常简单,只需要新建一个列索引,再为其赋值即可. 以下总结了5种常见添加新列的方法. 首先,创建一个DataFrame结构数据,作为数据举例. import pandas as pd # 创建一个DataFrame结构数据 data = {'a': ['a0', 'a

  • SQL Server表中添加新列并添加描述

    注: sql server 2005 及以上支持. 版本估计是不支持(工作环境2005,2008). 工作需要, 需要向SQL Server 现有表中添加新列并添加描述. 从而有个如下存储过程. (先附上存储过程然后解释) /********调用方法********** 作用: 添加列并添加列描述信息 调用: exec [SetColumnInfo] '表名', '列名', N'列说明,描述','列类型{默认:NVARCHAR(50)}','列默认值{默认:NULL}' ************

  • Android开发中数据库升级且表添加新列的方法

    本文实例讲述了Android开发中数据库升级且表添加新列的方法.分享给大家供大家参考,具体如下: 今天突然想到我们android版本升级的时候经常会遇到升级版本的时候在新版本中数据库可能会修改,今天我们就以数据库升级且表添加新列为例子写一个测试程序. 首先在要创建一个数据库,一般我们先创建一个DbHelper,继承SQLiteOpenHelper,构造函数我们使用传递版本号的: public DbHelper(Context context, String name, int version){

  • python读取excel指定列数据并写入到新的excel方法

    如下所示: #encoding=utf-8 import xlrd from xlwt import * #------------------读数据--------------------------------- fileName="C:\\Users\\st\\Desktop\\test\\20170221131701.xlsx" bk=xlrd.open_workbook(fileName) shxrange=range(bk.nsheets) try: sh=bk.sheet

  • PHP查找一列有序数组是否包含某值的方法

    问题:对于一列有序数组,如何判断给出的一个值,该值是否存在于数组. 思路:判断是否存在,最简单是,直接循环该数组,对每一个值进行比较.但是对于有序数组来说,这样写就完全没有利用好"有序"这一特点. 所有我们使用到"二分法查找", //有序数组为 $arr = array(2,5,66,87,954,1452,5865); //查找值 $str = 1452; //我们先定义 三个参数 $front = 0;//一个开始值下标 $end = count($arr) -

  • sqlserver 不能将值NULL插入列id(列不允许有空值解决)

    错误现象: Microsoft OLE DB Provider for SQL Server 错误 '80040e2f'不能将值 NULL 插入列 'id',表 'web.dbo.dingdan':列不允许有空值.INSERT 失败. /Untitled-2.asp,行 115 原因分析: SQL数据库中,建立表时没有将id列标识规范设置为"是".所以大家在创建表的时候一定将id设为自动增加id,标识之类的. 解决办法: 点击表,修改,设置id列标识规范为"是",如

随机推荐