小编Ani*_*pic的帖子

删除字符串中的连续重复项以生成最小的字符串

给定一个字符串和> = 3个字符匹配的约束,如何确保结果字符串尽可能小?

用gassa的显式编辑:

IE

'AAAABBBAC'

如果我首先移除B AAAA[BBB]AC -- > AAAAAC,那么我可以从结果字符串中删除所有的A并留下:

[AAAAA]C --> C

'C'

如果我先删除可用的内容(A的序列),我会得到:

[AAAA]BBBAC -- > [BBB]AC --> AC

'AC'

algorithm

14
推荐指数
1
解决办法
887
查看次数

将大量JSON文件读入Spark Dataframe

我有一个大的嵌套NDJ(新行分隔的JSON)文件,我需要读入一个火花数据帧并保存到镶木地板.在尝试呈现模式时,我使用此函数:

def flattenSchema(schema: StructType, prefix: String = null) : Array[Column] = {
        schema.fields.flatMap(f => {
          val colName = if (prefix == null) f.name else (prefix + "." + f.name)
          f.dataType match {
            case st: StructType => flattenSchema(st, colName)
            case _ => Array(col(colName))
          }
        })
  }
Run Code Online (Sandbox Code Playgroud)

在通过读取返回的数据帧上

val df = sqlCtx.read.json(sparkContext.wholeTextFiles(path).values)

我也把它切换到val df = spark.read.json(path)这样,这只适用于NDJ而不是多行JSON - 同样的错误.

这导致工人的内存不足错误 java.lang.OutOfMemoryError: Java heap space.

我已经改变了jvm内存选项和spark执行器/驱动程序选项无济于事

有没有办法流式传输文件,展平架构,并逐步添加到数据框?JSON的某些行包含前面提到的新字段...因此需要稍后填写.

json scala dataframe apache-spark

5
推荐指数
1
解决办法
2085
查看次数

标签 统计

algorithm ×1

apache-spark ×1

dataframe ×1

json ×1

scala ×1