我正在尝试将csv文件中的值映射到RDD,但我收到以下错误,因为某些字段为空。
线程"main"中的异常org.apache.spark.SparkException:由于阶段失败而中止的作业:阶段0.0中的任务0失败1次,最近的失败:阶段0.0中丢失的任务0.0(TID 0,localhost,执行驱动程序):java.lang.NumberFormatException:空字符串
以下是我正在使用的代码。
// Load and parse the data
val data = sc.textFile("data.csv")
val parsedData = data.map(s => Vectors.dense(s.split(',').map(_.toDouble))).cache()
有没有办法检查是否有空值?我曾想过用一种“试抓”的方法来做,但它似乎不起作用。
val parsedData = data.map(s => {
try {
val vector = Vectors.dense(s.split(',').map(_.toDouble))
}catch{
case e:NumberFormatException => println("Nulls somewhere")
}
(vector)
})
您可以过滤掉空项,只需将过滤方法添加到流中:
val parsedData = data.map(s => Vectors.dense(s.split(',').filter(!_.isEmpty).map(_.toDouble))).filter(_.size != 0)
这样任何空行都会导致空的Vector
,可以进一步过滤。
我有一个,它是通过解析一些excel电子表格创建的。具有空单元格的列。例如,下面是该列的频率输出,32320条记录缺少租户的值。 我试图删除缺少租户的行,但是选项无法识别缺少的值。 该列具有数据类型"Object"。这案子是怎么回事?如何删除租户失踪的记录?
我正在尝试删除此df中的所有行,其中“DB Serial”列包含字符*: 我正在使用: 但我得到这个错误:
问题内容: 基本上,我正在做一些数据分析。我以numpy.ndarray的形式读取数据集,但缺少了某些值(要么只是不在那里,要么就是被写为“ ”的字符串)。 我想清除包含这样任何条目的所有行。我该如何用一个numpy的ndarray? 问题答案: 并将其重新分配给。 说明:返回一个相似的阵列,其中,在其他地方。降低了阵列与逻辑对整个行,操作反相并从原始数组只选择行,其具有括号内。
问题内容: 我目前有一个数据框,其中包含以1和0作为值的列,我想遍历这些列并删除仅由0组成的列。到目前为止,这是我尝试过的: 在哪几年是我正在分析的不同年份的数据帧的列表,其中包括其中包含一个的列,而零则是包含所有零的列的列表。是否有更好的方法根据条件删除列?由于某些原因,我必须检查一列是否也位于零列表中,并将它们从零列表中删除,以获得所有零列的列表。 问题答案: df.loc[:, (df !=
我有一个熊猫数据框,看起来像这样(但实际上要大得多): 我只想删除包含-500(2)和整列(f和g)的整行。我的数据框是自动生成的,我还不知道哪些列和行包含-500。 有人知道怎么做吗? 谢谢
假设我有一张工作表--第一张--有5000多行(例如,每行“a”-“H”)。 在另一个工作表--第2号--中,我有一个“to-remove-list”--一个包含400个值的单列“a”,每个值包含字母数字字符串(例如:xxx1234)。 如果第'e'列包含“to-remove-list”(第2页的第'a'列)中的任何值,则必须删除第1页中的每一行。 删除整行,我的意思是删除该行并向上移动(不离开空