将文本文件读取到元组pyspark

mjqavswn  于 2021-05-27  发布在  Spark
关注(0)|答案(2)|浏览(633)

我有一个关于读取和创建数据集的问题。我有一个文本文件,其中包含:

Sunny,Hot,High,Weak,No
Sunny,Hot,High,Strong,No

我实现了如下代码:

from pyspark import SparkConf, SparkContext
import operator
import math

conf = SparkConf().setMaster("local[*]").setAppName("Lab 6")
sc = SparkContext(conf=conf)
rawData = sc.textFile("txtfile.data")
data = rawData.flatMap(lambda line: line.split(","))

而不是产生这样的结果:

[(Sunny, Hot, High, Weak, No), (Sunny, Hot, High, Strong, No)]

结果是:

['Sunny', 'Hot', 'High', 'Weak', 'No', 'Sunny', 'Hot', 'High', 'Strong', 'No']

有人能告诉我怎么修吗?

yvgpqqbh

yvgpqqbh1#

flatmapmap (转换)和展平,这将为子数组中的每个元素创建一行。
你想用 map 方法生成字符串数组类型的列。

ecfsfe2w

ecfsfe2w2#

使用 map 而不是 flatMap .

data = rawData.map(lambda line: line.split(","))

# [['Sunny', 'Hot', 'High', 'Weak', 'No'], ['Sunny', 'Hot', 'High', 'Strong', 'No']]

# to get list of tuples

data = rawData.map(lambda line: tuple(line.split(",")))

# [('Sunny', 'Hot', 'High', 'Weak', 'No'), ('Sunny', 'Hot', 'High', 'Strong', 'No')]

相关问题