例如,本地文件data.txt的结构是:
1.0 2.0 3.0 4.0
5.0 6.0 7.0 8.0
...
将文件读取为RDD [String]:
lines = sc.textFile("data.txt")
拆分为RDD [List [String]]:
data_temp = lines.map(lambda line: line.split(" "))
如何转换为RDD [List [Float]]?
我知道json.loads()
可以解析字符串,在这种情况下怎么办?
答案 0 :(得分:1)
分割线条时,只需将所有字符串转换为浮点数:
data_temp = line.map(lambda line: [float(i) for i in line.split(" ")])
或者您可以将数据作为数据框读取并推断出类型:
df = (spark.read
.schema(schema)
.option("header", "true")
.option("inferSchema", "true")
.csv("some_input_file.csv"))
有关阅读csv文件时不同选项的详细信息,请参阅here。