Spark中如何提取DataFrame单行并生成独立DataFrame?
解决方案
首先要修正你给出的原始数据语法错误:元组无法使用键值对形式定义数据,必须改用字典或Spark的Row对象,否则createDataFrame会直接报错。
修正后的基础代码示例
from pyspark.sql import Row # 方式1:使用字典构造数据 raw_data = [ {"name": "Bob", "age": 26}, {"name": "Alice", "age": 29} ] # 方式2:使用Spark Row对象构造数据 raw_data = [ Row(name="Bob", age=26), Row(name="Alice", age=29) ] # 创建DataFrame raw_data_df = spark.createDataFrame(raw_data)
提取Alice所在行的简便方法
直接用filter(或where,两者功能完全一致)方法过滤name字段为Alice的记录,得到的就是单行DataFrame:
# 方式1:使用列对象条件过滤 alice_df = raw_data_df.filter(raw_data_df.name == "Alice") # 方式2:使用字符串表达式过滤 alice_df = raw_data_df.filter("name = 'Alice'")
你可以通过show()方法验证结果:
alice_df.show()
输出结果:
+-----+---+ | name|age| +-----+---+ |Alice| 29| +-----+---+
内容的提问来源于stack exchange,提问作者coderodde
相关产品推荐
相关产品推荐

