zoukankan      html  css  js  c++  java
  • 在Nifi 里 把 HDFS Json 为csv 格式

    import org.apache.commons.io.IOUtils
    import java.nio.charset.*
    import java.text.SimpleDateFormat
    import groovy.json.*

    def flowFile = session.get()

    flowFile = session.write(flowFile, {inputStream, outStream ->

    def js = IOUtils.toString(inputStream, StandardCharsets.UTF_8)
    def data = new JsonSlurper().parseText( js )
    def columns = data.data*.keySet().flatten().unique()

    // Wrap strings in double quotes, and remove nulls
    def encode = { e -> e == null ? '' : e instanceof String ? /"$e"/ : "$e" }

    // Print all the column names
    def columnName = columns.collect { c -> encode( c ) }.join( ',' )

    // Then create all the rows
    def columnData = data.data.collect { row ->
    // A row at a time
    columns.collect { colName -> encode( row[ colName ] ) }.join( ',' )
    }.join( ' ' )

    StringBuilder cd = new StringBuilder()
    cd.append(columnName + " ")
    cd.append(columnData)

    outputStream.write(cd.toString().getBytes(StandardCharsets.UTF_8))
    }as StreamCallback)

    session.transfer(flowFile, REL_SUCCESS)

     

     

    NIFI 中国社区 QQ群:595034369

  • 相关阅读:
    操作系统
    C++流类库(11)
    C++运算符重载(10)
    C++虚函数(09)
    C++向量(08)
    C++继承(07)
    ResNet实战
    ResNet,DenseNet
    经典卷积网络VGG,GoodLeNet,Inception
    CIFAR100与VGG13实战
  • 原文地址:https://www.cnblogs.com/fengwenit/p/6060825.html
Copyright © 2011-2022 走看看