복붙노트

[SCALA] 어떻게하면 saveAsTextFile RDD [(문자열, INT)]에 기록 괄호를 제거하려면?

SCALA

어떻게하면 saveAsTextFile RDD [(문자열, INT)]에 기록 괄호를 제거하려면?

DB에 결과를 가져올 이상에서 텍스트 파일로 출력을 저장하기 위해 나는 saveAsTextFile (경로)를 사용하고 있습니다. 출력은 다음과 같은 :

(value1, value2)

어떻게 괄호를 제거하려면?

해결법

  1. ==============================

    1.당신은 아주 기본적인 다음을 시도 할 수 있습니다 :

    당신은 아주 기본적인 다음을 시도 할 수 있습니다 :

    rdd.map(x => x._1 + "," + x._2).saveAsTextFile(path)
    

    당신은 단지 RDD [문자열]과 그것을 저장하여 RDD [(A, B)]를 매핑합니다.

  2. ==============================

    2.전에 saveAsTextFile 사용지도 (X => x.mkString ( ",")

    전에 saveAsTextFile 사용지도 (X => x.mkString ( ",")

    rdd.map (X => x.mkString ( ","). saveAsTextFile (경로)

    출력 브라켓이 없습니다.

  3. ==============================

    3.자바 세계에있는 사람들을 위해, 여기에 DataFrame와 시작은, RDD로 변환하는 솔루션입니다 다음 결과를 기록합니다. RDD의 행은 문자열로지도 기능 즉 변환 행을 통해 전달됩니다.

    자바 세계에있는 사람들을 위해, 여기에 DataFrame와 시작은, RDD로 변환하는 솔루션입니다 다음 결과를 기록합니다. RDD의 행은 문자열로지도 기능 즉 변환 행을 통해 전달됩니다.

    public void write(DataFrame output) {
        String path = "your_path_goes_here";
        output
            .toJavaRDD()
            .map(new BracketRemover())
            .saveAsTextFile(path);
    }
    
    protected class BracketRemover implements Function<Row, String> {
        public String call(Row r) {
            return r.mkString(",");
        }
    }
    
  4. ==============================

    4.명시 적으로 된 mkString를 사용하기보다는 직접 튜플을 인쇄 해보십시오.

    명시 적으로 된 mkString를 사용하기보다는 직접 튜플을 인쇄 해보십시오.

  5. ==============================

    5.당신은 사용하여 RDD을 절약 할 수 있습니다 rdd.map (REC => rec.productIterator.mkString ( ","). saveAsTextFile (경로) 결과 데이터 세트는 괄호가 없습니다.

    당신은 사용하여 RDD을 절약 할 수 있습니다 rdd.map (REC => rec.productIterator.mkString ( ","). saveAsTextFile (경로) 결과 데이터 세트는 괄호가 없습니다.

  6. ==============================

    6.나는 스칼라 태그하지만, 단지 사람이 호기심 경우 파이썬의 측면에 추가하는 것을 알고있다. RDD를 만들고있는 그대로 저장

    나는 스칼라 태그하지만, 단지 사람이 호기심 경우 파이썬의 측면에 추가하는 것을 알고있다. RDD를 만들고있는 그대로 저장

    rdd_of_tuples = sc.parallelize([('one',1),('two',2)])
    rdd_of_tuples.saveAsTextFile('/user/cloudera/rdd_of_tuples')
    

    당신이 언급으로이 같은 행을 저장합니다

    ('one', 1)
    

    당신이 경우에 그러나 그 다음은 작동합니다

    rdd_of_text = rdd_of_tuples.map(lambda (x,y): x + ',' + str(y)).saveAsTextFile('/user/cloudera/rdd_of_text')
    

    그리고 당신은 가야

    one,1
    

    참고이 특정 경우에 당신합니다 (STR (y)를 확인) 합치의 유형을 인식 할 필요가 있음을, 다른 사람은 다음과 같은 예외를 얻을 것

    TypeError: cannot concatenate 'str' and 'int' objects
    
  7. from https://stackoverflow.com/questions/29945330/how-to-remove-parentheses-around-records-when-saveastextfile-on-rddstring-int by cc-by-sa and MIT license