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

如何从头文件创建数据帧架构

夏谦
2023-03-14

我有2个数据文件:

1个文件是头文件,另一个是数据文件。头文件有2列(Id,标记):头。txt文件

Id,Tags

现在我试图创建一个dataFrame Schema头文件:(我必须使用这种方法,因为在实时,有1000列header.txtdata.txt.所以,手动创建1000列的案例类是不可能的。

val  dataFile=sparkSession.read.format("text").load("data.txt")

val headerFile=sparkSession.sparkContext.textFile("header.txt")

val fields= 
headerFile.flatMap(x=>x.split(",")).map(fieldName=>StructField(fieldName,StringType,true))

val schema=StructType(fields)

但是上面的行失败了,无法解决重载方法结构类型。

有人能帮忙吗

共有1个答案

慕铭
2023-03-14

StructType需要一个StructField数组,您正在使用fields变量,它是一个RDD[字符串],因此收集RDD以创建StructType。

val fields= headerFile.flatMap(x=>x.split(","))
            .map(fieldName=>StructField(fieldName,StringType,true))

val schema=StructType(fields.collect)
 类似资料:
  • 我需要从不同的字典中创建一个熊猫数据框架,其中键必须作为数据框架内的列名。如果数据帧没有将键列为列,则必须动态创建键,并将其作为新列附加到数据帧。 我希望输入为, 输出应该是,, 循环的第一次迭代将键作为数据框的列名称,如果没有数据框,则创建值作为第一行的数据框。 第二次迭代检查键是否作为列出现在数据帧中,如果已经出现则插入,否则创建列并插入值作为第二行。 我确实不知道如何在python中动态运行

  • 我正在处理非常长的嵌套JSON文件中的数据。问题是,这些文件的结构并不总是相同的,因为有些文件缺少其他文件的列。我想从一个包含所有列的空JSON文件创建一个定制模式。如果我稍后将JSON文件读入这个预定义的模式,不存在的列将被空值填充(至少计划是这样的)。到目前为止我所做的: 将测试 JSON(不包含预期的所有列)加载到数据帧中 将其架构写入 JSON 文件 在文本编辑器中打开此 JSON 文件并

  • 问题内容: 我正在使用Codeigniter建立一个多语言的在线站点。我的问题是 如何将数据从数据库传递到Codeigniter语言文件 。到目前为止,我的逻辑是运行查询,该查询将使用translation_key和value填充语言文件。问题在于语言文件不是扩展的CI_class类,现在我不知道如何继续。 您将如何处理该问题?文档没有说明如何在数据库中使用语言类。 问题答案: 您走在正确的轨道上

  • 我在使用文本文件创建SQLite数据库时遇到了问题。我应该创建一个成员列表,其中包含以下内容:(成员)号、名字、姓氏、地址和电话号码(如果有的话)。我正在使用方法创建db,但我似乎无法让它正常工作。 文本文件是这样填充的('...'应该意味着列表中还有其他文件): 正如你可能看到的,一些成员没有电话号码,我认为这是导致db无法填充的原因。我之所以相信这一点,是因为我试图用所有信息制作自己的列表,这

  • 我有一个数据框,我正在使用TIA来填充彭博社的数据。当我看着df。索引我看到我打算成为列的数据以多索引的形式呈现给我。df的输出。列是这样的: 索引([u'column1','u'column2']) 我尝试过各种reset_index的迭代,但都无法补救这种情况。 1) TIA管理器如何使数据帧列作为索引读入? 2) 如何正确地将这些列标识为列而不是多索引? 我试图解决的最终问题是,当我尝试将此

  • 我正在尝试制作一个数据帧,以便可以轻松地将其发送到CSV,否则我必须手动执行此过程。。 我希望这是我的最终输出。每个人都有一个月和年的组合,从2014年1月1日开始,一直到2016年1月12日: 到目前为止的代码: 当我尝试循环创建数据帧时,它要么不工作,要么出现索引错误(因为不匹配列表),我不知所措。 我已经做了一点很好的搜索,并找到了以下一些类似的链接,但我不能反向工程的工作,以适应我的情况。