2017-12-12 1 views

답변

0

을, 나는 매개 변수를 사용할 수 docs에있는 'primitivesAsString'

df = spark.read.json(r's3://mypath/', primitivesAsString='true') 

나는 적어도 추론을 금지 할 수 있습니다이 방법 primite 유형의 경우. 그러나, 나는 배열과 구조체에 대해서는 그것을 피하지 않을 것이다. 아직도, 그것은 나에게 효과적이다.

0

스키마를 추론하는 대신 직접 생성 한 다음 Spark에 사용하도록 지시 할 수 있습니다. 다른 유형의 3 열을 가진 작은 예제 :

schema = StructType([StructField('name', StringType(), True), 
        StructField('datetime', TimestampType(), True) 
        StructField('age', IntegerType(), True)]) 

df = spark.read.schema(schema).json(r's3://mypath/') 

이것은 JSON 파일의 구조를 미리 알고있는 경우에만 작동합니다. 그러나 구조가 다른 여러 파일이있는 경우 동일한 스키마로 읽음으로써 함께 병합 할 수 있습니다. 일부 열이없는 파일의 값은 null입니다.

+0

이 문제는 내가 무엇을 기대해야할지 모르겠다는 뜻입니다. 나는 json에서 기둥의 이름을 모른다. – lfvv

+0

@Ifvv : 예, 사용하려는 열을 알고있는 경우에만 작동합니다. json 파일에 관심있는 열이 다른 경우 동일한 스키마에 모두 지정할 수 있습니다. 누락 된 열의 경우 값은 null입니다. – Shaido

관련 문제