给定一个字符串和> = 3个字符匹配的约束,如何确保结果字符串尽可能小?
用gassa的显式编辑:
IE
'AAAABBBAC'
如果我首先移除B
AAAA[BBB]AC -- > AAAAAC,那么我可以从结果字符串中删除所有的A并留下:
[AAAAA]C --> C
'C'
如果我先删除可用的内容(A的序列),我会得到:
[AAAA]BBBAC -- > [BBB]AC --> AC
'AC'
我有一个大的嵌套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的某些行包含前面提到的新字段...因此需要稍后填写.