Koalas - 入门基本操作

Koalas - 入门基本操作

    • 导入库
    • 对象的创建
    • 查看数据
    • 缺少数据
    • Spark配置
    • 分组
    • 获得的数据输入/输出

导入库

import pandas as pd
import numpy as np
import databricks.koalas as ks
from pyspark.sql import SparkSession

对象的创建

  • 通过传递值列表来创建Koalas系列,让Koalas创建默认的整数索引:
s = ks.Series([1, 3, 5, np.nan, 6, 8])

Koalas - 入门基本操作_第1张图片

  • 通过传递对象的字典来创建Koalas DataFrame,这些对象可以转换为类似序列的对象。
kdf = ks.DataFrame(
    {'a': [1, 2, 3, 4, 5, 6],
     'b': [100, 200, 300, 400, 500, 600],
     'c': ["one", "two", "three", "four", "five", "six"]},
    index=[10, 20, 30, 40, 50, 60])

Koalas - 入门基本操作_第2张图片

  • 通过传递带有日期时间索引和带标签的列的numpy数组来创建pandas DataFrame
dates = pd.date_range('20130101', periods=6)

Koalas - 入门基本操作_第3张图片

pdf = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))

Koalas - 入门基本操作_第4张图片

  • 现在,此Pandas数据框可以转换为Koalas数据框
kdf = ks.from_pandas(pdf)

在这里插入图片描述

  • 它的外观和行为与pandas DataFrame相同
    Koalas - 入门基本操作_第5张图片
  • 从pandas DataFrame创建Spark DataFrame
spark = SparkSession.builder.getOrCreate()
sdf = spark.createDataFrame(pdf)

Koalas - 入门基本操作_第6张图片

  • 从Spark DataFrame创建Koalas DataFrame。to_koalas()会自动附加到Spark DataFrame,并且在导入Koalas时可用作API。
kdf = sdf.to_koalas()

Koalas - 入门基本操作_第7张图片

查看数据

  • 查看koalas数据框前5行数据
    Koalas - 入门基本操作_第8张图片
  • 显示索引,列和基础的numpy数据。
    Koalas - 入门基本操作_第9张图片
  • 描述显示您的数据的快速统计摘要
    Koalas - 入门基本操作_第10张图片
  • 转置数据
    Koalas - 入门基本操作_第11张图片
  • 按其索引排序
kdf.sort_index(ascending=False)

Koalas - 入门基本操作_第12张图片

  • 按值排序
kdf.sort_values(by='B')

Koalas - 入门基本操作_第13张图片

缺少数据

  • Koalas主要使用该值np.nan表示丢失的数据。默认情况下,它不包括在计算中。
    Koalas - 入门基本操作_第14张图片
# 取前四行,列表新增一列:E列
pdf1 = pdf.reindex(index=dates[0:4], columns=list(pdf.columns) + ['E'])

# 给索引的第一第二行的E列赋值,因为第三第四行的E列的数据没赋值,所以为空
pdf1.loc[dates[0]:dates[1], 'E'] = 1

# 将此pandas数据框转化为Koalas数据框
kdf1 = ks.from_pandas(pdf1)

Koalas - 入门基本操作_第15张图片

  • 删除任何缺少数据的行。
    Koalas - 入门基本操作_第16张图片
    我们可以看到,第三第四行因为有空值,所以这两行数据就被删除了。

  • 填充数值给那些含有空值的数据。
    Koalas - 入门基本操作_第17张图片

  • 查看koalas数据框中数值列的均值,此操作通常会排除丢失的数据。执行描述性统计
    Koalas - 入门基本操作_第18张图片

Spark配置

  • PySpark中的各种配置可以在考拉内部应用。例如,您可以启用Arrow优化,以极大地加快内部熊猫的转换。
# 保持默认值
prev = spark.conf.get("spark.sql.execution.arrow.enabled")  

# 使用默认索引防止开销。
ks.set_option("compute.default_index_type", "distributed")  

# 忽略来自Arrow优化的警告。
import warnings
warnings.filterwarnings("ignore")  
  • 由下图我们可以看到,使用默认值,ks执行一次循环只需要322 ms ± 34.6 ms。而不使用默认值,ks执行一次循环则需要922 ms ± 58.2 ms。
    Koalas - 入门基本操作_第19张图片

分组

“分组依据”是指涉及以下一个或多个步骤的过程:

  • 根据某些条件将数据分成几组

  • 将功能独立应用于每个组

  • 将结果合并为数据结构

kdf = ks.DataFrame({'A': ['foo', 'bar', 'foo', 'bar',
                          'foo', 'bar', 'foo', 'foo'],
                    'B': ['one', 'one', 'two', 'three',
                          'two', 'two', 'one', 'three'],
                    'C': np.random.randn(8),
                    'D': np.random.randn(8)})

Koalas - 入门基本操作_第20张图片

  • 分组,然后将sum()函数应用于结果组。可以看到:C列和D列关于A索引的数值总和。
    Koalas - 入门基本操作_第21张图片
  • 按多列分组会形成一个层次结构索引,我们可以再次应用sum函数。
kdf.groupby(['A', 'B']).sum()

Koalas - 入门基本操作_第22张图片

获得的数据输入/输出

  • CSV
# 将此koalas数据框转化为csv文件
kdf.to_csv('foo.csv')

# 读取csv文件为koalas的数据框
ks.read_csv('foo.csv').head(10)

Koalas - 入门基本操作_第23张图片

  • Parquet

Parquet是一种高效和紧凑的文件格式,读取和写入更快。

# 将此koalas数据框转化为Parquet文件格式
kdf.to_parquet('bar.parquet')

# 读取Parquet文件为koalas的数据框
ks.read_parquet('bar.parquet').head(10)

Koalas - 入门基本操作_第24张图片
关于koalas数据框的基本操作就介绍到这里。如果各位路过的朋友觉得对自己有帮助的话,麻烦关注一下小编或者点个赞再走哦~

你可能感兴趣的:(python,python)