pyspark之DataFrame学习【dataFrame查询】(3)

本文介绍了如何在PySpark中查看DataFrame数据,包括使用count(), filter()和SQL查询。通过示例展示了筛选特定条件数据的方法,如利用like关键字匹配以特定字符开头的字段。" 137711398,161309,使用ioctl深入获取WiFi信号属性,"['网络编程', '无线信号强度', 'ioctl', 'WiFi扫描']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在查看dataFrame的信息时,可以通过collect()、show()、或者take()、来查看DataFrame中的数据(show()和take()包含了限制返回行数的选项

1.查看行数

可以使用count()方法查看DataFrame的行数

from pyspark.sql import SparkSession

spark= SparkSession\
                .builder \
                .appName("dataFrame") \
                .getOrCreate()
# # 导入类型
from pyspark.sql.types import *
#生成以逗号分隔的数据
stringCSVRDD = spark.sparkContext.parallelize([
    (123,"Katie",19,"brown"),
    (234,"Michael",22,"green"),
    (345,"Simone",23,"blue")
])
#指定模式,StructField(name,dataType,nullable)其中name:该字段的名字,dataType:该字段的数据类型,nullable:指示该字段的值是否为空
schema = StructType([
    StructField("id",LongType(),True),
    StructField("name",StringType(),True),
    StructField("age",LongType(),True),
    StructField("eyeColor",StringType(),True)
])
#RDD应用该模式并且创建DataFrame
swimmers = spark.createDataFrame(stringCSVRDD,schema)
#利用DataFrame创建一个临时视图
swimmers.registerTempTable("swimmers")
#查看DataFrame的行数
print swimmers.count()
3

2.筛选语句

使用filter字句运行筛选语句

#获取age=22id
swimmers.select("id","age").filter("age=22").show()
+---+---+
| id|age|
+---+---+
|234| 22|
+---+---+

上述查询的另一种写法

swimmers.select(swimmers.id,swimmers.age).filter(swimmers.age==22).show()
+---+---+
| id|age|
+---+---+
|234| 22|
+---+---+

如果只想得到眼睛颜色是以字母b开头的人的名字,则可使用like

#获得eyeColor like 'b%'的(name)名字,(eyeColor)眼睛颜色
swimmers.select("name","eyeColor").filter("eyeColor like 'b%'").show()
+------+--------+
|  name|eyeColor|
+------+--------+
| Katie|   brown|
|Simone|    blue|
+------+--------+

3.利用SQL查询

可以执行SQL查询是因为对swimmers数据执行了.registerTempTable方法

查询行数

# swimmers.select("name","eyeColor").filter("eyeColor like 'b%'").show()
spark.sql("select count(1) from swimmers").show()

+--------+
|count(1)|
+--------+
|       3|
+--------+

利用where字句运行筛选语句

#SQL获得age=22idage
spark.sql("select id,age from swimmers where age=22").show()
+---+---+
| id|age|
+---+---+
|234| 22|
+---+---+

如果只是想要取回眼睛颜色以字母b开头的人的名字,则可以使用like

spark.sql("select name,eyeColor from swimmers where eyeColor like 'b%'").show()
+------+--------+
|  name|eyeColor|
+------+--------+
| Katie|   brown|
|Simone|    blue|
+------+--------+


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值