Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >蒙古出口严格的火种装载

蒙古出口严格的火种装载
EN

Stack Overflow用户
提问于 2017-07-05 04:43:32
回答 1查看 512关注 0票数 1

我有一个使用mongoexport从mongodb导出数据的进程。正如文档提到的,所有json输出都处于严格的模式中。

这意味着数据将如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"{amount":{"$numberLong":"3"},"count":{"$numberLong":"245"}}

其中,我的Scala案例类被定义为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
case class MongoData(amount: Long, count: Long)

当然,读取数据会像这样失败:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spark
      .read
      .json(inputPath)
      .as[MongoData]

有没有一种方法可以在没有严格模式的情况下从mongo导出,或者在Scala中导入json而不手动地将每个字段重组到适当的结构中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-06 01:51:08

我现在用这个作为解决方案。但感觉有点烦躁。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
case class DataFrameExtended(dataFrame: DataFrame) {

   def undoMongoStrict(): DataFrame = {
    val numberLongType = StructType(List(StructField("$numberLong", StringType, true))) 

    def restructure(fields: Array[StructField], nesting: List[String] = Nil): List[Column] = {
      fields.flatMap(field => {
        val fieldPath = nesting :+ field.name
        val fieldPathStr = fieldPath.mkString(".")
        field.dataType match {
          case dt: StructType if dt == numberLongType =>
            Some(col(s"$fieldPathStr.$$numberLong").cast(LongType).as(field.name))
          case dt: StructType =>
            Some(struct(restructure(dt.fields, fieldPath): _*).as(field.name))
          case _ => Some(col(fieldPathStr).as(field.name))
          //              case dt:ArrayType => //@todo handle other DataTypes Array??
        }
      })
    }.toList


    dataFrame.select(restructure(dataFrame.schema.fields): _*)
  }
}

implicit def dataFrameExtended(df: DataFrame): DataFrameExtended = {
  DataFrameExtended(df)
}

spark
  .read
  .json(inputPath)
  .undoMongoStrict()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44926616

复制
相关文章
程序的装载方式
程序执行时所需要的指令和数据必须在内存中才能够运行。最简单的就是静态装入:将程序运行所需要的指令和数据全都装入内存中。当程序所需要内存大于物理内存时,无法满足静态装入的要求,这个时候就需要使用动态装入了,其思想是将程序运行时当前不用的模块放在磁盘,使用的模块放在内存。
恋喵大鲤鱼
2019/08/14
8170
Typescript 严格模式有多严格?
"use strict"指令在JavaScript 1.8.5 (ECMAScript5)中新增。
用户1462769
2019/11/18
3.1K0
Typescript 严格模式有多严格?
Typescript 严格模式有多严格?
"use strict"指令在JavaScript 1.8.5 (ECMAScript5)中新增。
前端劝退师
2019/11/07
2.1K0
Typescript 严格模式有多严格?
最优装载问题
问题描述: 有一批集装箱要装上一艘载重量为c的轮船。其中集装箱i的重量为Wi。最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。 问题可以描述为: 式中,变量xi = 0
我没有三颗心脏
2018/04/26
1.3K0
最优装载问题
严格模式
JavaScript 除了提供正常模式外,还提供了严格模式(strict mode)。ES5 的严格模式是采用具有限制性 JavaScript变体的一种方式,即在严格的条件下运行 JS 代码。
梨涡浅笑
2020/10/27
7830
严格模式
JS的严格模式采用具有限制性javascript变体的一种方式,即在严格的条件下运行js代码。 严格模式对正常模式做了如下更改
切图仔
2022/09/08
4890
Hive的严格模式
但是,再生成动态分区的时候,会失败,所以必须将其单独设置为非严格模式!!! 设置方式:
Java架构师必看
2021/08/10
6070
严格模式
JavaScript 除了提供正常模式外,还提供了严格模式(strict mode)。ES5 的严格模式是采用具有限制性 JavaScript变体的一种方
清出于兰
2022/05/11
5940
严格模式
严格模式
JavaScript 除了提供正常模式外,还提供了严格模式(strict mode)。ES5 的严格模式是采用具有限制性 JavaScript变体的一种方式,即在严格的条件下运行 JS 代码。
星辰_大海
2020/10/26
7330
美国商务部拟定出口技术管制条例,严格限制AI、量子计算等关键技术
美国商务部工业和安全署(BIS)通过出口管理条例(EAR),包括《商业管制清单》(CCL),控制军民两用和不太敏感的军品的出口。商务部出台了一份出口管制规则,并开始征询公众意见。
AiTechYun
2018/12/18
1.1K0
美国商务部拟定出口技术管制条例,严格限制AI、量子计算等关键技术
JavaScript 严格模式
严格模式是 ECMAScript5 (ES5)发布的语言新特性。使用严格模式可以限制 JavaScript 的一些语言特性,使用严格模式可以去除在书写代码时的一些“骚操作”(有些特性在严格模式下是不可用的),使代码更严谨整洁。
多云转晴
2020/02/17
9760
益联益家内蒙古游学从草原到沙漠,感受蒙古豪情!
2018年7月4日,草原狂欢后,益联益家家人们踏上新的征程——库布齐沙漠,库布齐沙漠是中国第七大沙漠,“库布齐”是蒙语,意思是弓上的弦。这次,益联益家带你驼行大漠,感受库布齐大沙漠的速度与激情。
益联益家
2018/07/07
7270
webpack的出口(output)
output 属性告诉 webpack 在哪里输出它所创建的 bundles,以及如何命名这些文件,默认值为 ./dist。基本上,整个应用程序结构,都会被编译到你指定的输出路径的文件夹中。
刘亦枫
2020/03/19
9840
浅谈Spring装载Bean的几种方式
在上述例子中,UserConfig类上加入@Configuration注解,表明这是一个配置类,里面有一个@Bean注解的user()方法,表明这个方法是交由Spring管理的Bean。而且若未指定Bean的名称,则默认该Bean的名称为方法名,这里指代user。
东边的大西瓜
2022/05/05
5090
浅谈Spring装载Bean的几种方式
从火种到核心 浅析Hadoop大数据用户的演变
在Hadoop发展的8年时间里,我们看到一种“使用浪潮”——一代又一代用户在相同的时间和类似的环境下使用Hadoop。每一个在数据处理时使用了Hadoop的用户,都面临着类似的挑战,为了让一切正常运转,要么被迫协同工作,要么干脆隔离。接下来我们就讨论这些客户,看他们彼此之间有何不同。 第0代——火种 这是开头:在谷歌2000年中的研究论文的基础上,一些信徒奠定了廉价存储和计算能力的商品化基础。 Doug Cutting是教父。他跟Mike Cafarella一起,实现了谷歌文件系统和Map
静一
2018/03/16
5610
从火种到核心,浅析Hadoop大数据用户的演变
在Hadoop发展的8年时间里,我们看到一种“使用浪潮”——一代又一代用户在相同的时间和类似的环境下使用Hadoop。每一个在数据处理时使用了Hadoop的用户,都面临着类似的挑战,为了让一切正常运转,要么被迫协同工作,要么干脆隔离。接下来我们就讨论这些客户,看他们彼此之间有何不同。 第0代——火种 这是开头:在谷歌2000年中的研究论文的基础上,一些信徒奠定了廉价存储和计算能力的商品化基础。 Doug Cutting是教父。他跟Mike Cafarella一起,实现了谷歌文件系统和MapReduce的一个
小莹莹
2018/04/18
5720
JavaScript严格模式
"use strict" 指令 "use strict" 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。它不是一条语句,但是是一个字面量表达式,在 JavaScript
xiangzhihong
2018/02/05
1.4K0
JavaScript严格模式
JavaScript 严格模式
ECMAScript 5 引入了严格模式(strict mode)的概念。严格模式为JavaScript定义了一种不同的解析与执行模型。在严格模式下,ECMAScript 3中的一些不确定的行为将得到处理,而且对于某些不安全的操作也会抛出错误。(JavaScript高级程序设计)
李振
2021/11/26
8290
点击加载更多

相似问题

蒙古出口csv不出口时间

11

蒙古出口--发行"\n“

26

蒙古出口0项记录

22

蒙古出口保持在0%

17

能提高蒙古的出口速度吗?

50
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文