jsons 그룹에서 데이터 프레임을 생성하는 동안 스키마를 추론하고 싶지 않지만 CSV에서 읽을 때처럼 inferSchema = 'false'
을 전달할 수 없습니다. 여기에 데이터 읽기 방법입니다 잠시 동안보고 후json에서 데이터 프레임을 생성하는 동안 스키마를 추론하지 않는 방법은 무엇입니까?
df = spark.read.json(r's3://mypath/')
jsons 그룹에서 데이터 프레임을 생성하는 동안 스키마를 추론하고 싶지 않지만 CSV에서 읽을 때처럼 inferSchema = 'false'
을 전달할 수 없습니다. 여기에 데이터 읽기 방법입니다 잠시 동안보고 후json에서 데이터 프레임을 생성하는 동안 스키마를 추론하지 않는 방법은 무엇입니까?
df = spark.read.json(r's3://mypath/')
을, 나는 매개 변수를 사용할 수 docs에있는 'primitivesAsString'
df = spark.read.json(r's3://mypath/', primitivesAsString='true')
나는 적어도 추론을 금지 할 수 있습니다이 방법 primite 유형의 경우. 그러나, 나는 배열과 구조체에 대해서는 그것을 피하지 않을 것이다. 아직도, 그것은 나에게 효과적이다.
스키마를 추론하는 대신 직접 생성 한 다음 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
입니다.
이 문제는 내가 무엇을 기대해야할지 모르겠다는 뜻입니다. 나는 json에서 기둥의 이름을 모른다. – lfvv
@Ifvv : 예, 사용하려는 열을 알고있는 경우에만 작동합니다. json 파일에 관심있는 열이 다른 경우 동일한 스키마에 모두 지정할 수 있습니다. 누락 된 열의 경우 값은 null입니다. – Shaido