当前位置: 首页 > 知识库问答 >
问题:

Pyspark“在读取Json文件时,无法解析'`keyName_1`'给定的输入列:[keyName_1,keyName_2,keyName_3]\n”

邹嘉致
2023-03-14
raw = sc.textFile(path)
dataset_df = sqlContext.read.json(raw)
dataset_df.select('countryName', 'city', 'age')

有人知道这背后的原因吗?

提前谢了。

共有1个答案

胡景焕
2023-03-14

最后,我找到了解决办法

所以问题是由这样一个事实引起的,即我正在读取的一些json文件可能没有我要查找的所有密钥。正是在这种情况下,文件没有特定的键,我得到了我报告的错误。为了解决这个问题,我只需要检查一下在这个特定的json文件中是否找到了一个密钥。如果找不到它,我就用none替换它(这可以是我用来指示缺少的值的任何值)。

以下是结果代码:

raw = sc.textFile(path)
dataset_df = sqlContext.read.json(raw)

all_columns_being_used = ["countryName", 'city', "age"]

for column_name in all_columns_being_used:
                if not column_name in dataset_df.columns:
                    pre_feature_set = dataset_df.withColumn(column_name, lit(None))
 类似资料:
  • 我这里有一段简单的代码: 我收到一个错误,上面写着: 文件 根据提供的解决方案,我尽了最大努力。有趣的是,我在另一个表上有另一个查询,效果很好。非常感谢您的帮助。提前谢谢。 这是表的架构: ;

  • 问题内容: 我一周前开始使用Java,现在我想在窗口中插入一个图像。无论我尝试什么,我都会在Eclipse中继续使用它: javax.imageio.IIOException:无法读取输入文件! } 我认为代码很容易解释。我试图解决这个问题 我想做的是一个桌面程序,我的源代码存储如下:training / src / graphics / Window training / src / src /

  • 问题内容: 我对Logstash有一个奇怪的问题。我正在提供一个日志文件作为logstash的输入。配置如下: 我已经在运行elasticsearch服务器并验证是否正在使用curl查询接收数据。问题是,当输入为时,没有数据被接收。但是,如果我将输入更改为以下内容,它将顺利发送所有输入数据: 我不明白我要去哪里错了。有人可以看看这个吗? 问题答案: 您应该在文件部分下设置start_positio

  • 问题内容: 这是我的第一篇文章,请问如果我做错了什么。直到我尝试从源包中读取图像,此代码才能正常运行。但是现在它无法读取任何图像。我究竟做错了什么?还是关于日食的事? 例外: 谢谢… 问题答案: 改变了,如果你使用的是Windows。 更跨平台的方法将替代 对于每对。 进一步了解File api文档 编辑 (对不起,我没有读过此行) 这段代码运行正常,直到我尝试从源包中读取图像 为了从jar包中获

  • 问题内容: 我不知道为什么这不起作用,但是程序说它无法读取输入文件。顺便说一下,这也在Ubuntu中运行: 这是示例代码: 该目录也位于程序的bin文件夹和src文件夹中。 问题答案: 如果您改为从资源流中获取图像怎么办?例如,

  • 我尝试安装java并使用XLConnect包mmethods(两者都是),但是我得到了如下所示的错误: 我绝对不是试图加载一个空文件,我绝对有访问/权限从文件位置读取。我可能做错了什么? R read_excel:libxls错误:无法解析文件