Spark อ่าน json พร้อมสคีมาบางส่วน

ฉันต้องประมวลผลไฟล์ json ที่ค่อนข้างใหญ่โดยใช้ spark ฉันไม่ต้องการฟิลด์ทั้งหมดใน json และจริงๆ แล้วต้องการอ่านเพียงบางส่วนเท่านั้น (ไม่ใช่อ่านทุกฟิลด์และโปรเจ็กต์) ฉันสงสัยว่าฉันสามารถใช้ตัวเชื่อมต่อ json และให้สคีมาการอ่านบางส่วนกับเฉพาะฟิลด์ที่ฉันสนใจในการโหลดได้หรือไม่


person Hagai    schedule 13.07.2017    source แหล่งที่มา


คำตอบ (1)


ขึ้นอยู่กับว่า json ของคุณเป็นแบบหลายบรรทัดหรือไม่ ปัจจุบัน spark รองรับเฉพาะ json ในบรรทัดเดียวเป็น data frame Spark 2.3 รุ่นถัดไปจะรองรับ Multiline JSON

แต่สำหรับคำถามของคุณ ฉันไม่คิดว่าคุณสามารถใช้สคีมาบางส่วนเพื่ออ่านใน json ได้ ขั้นแรกคุณสามารถจัดเตรียมสคีมาทั้งหมดเพื่ออ่านในรูปแบบดาต้าเฟรม จากนั้นเลือกคอลัมน์เฉพาะที่คุณต้องการเพื่อสร้างสคีมาบางส่วนเป็นดาต้าเฟรมแยกกัน เนื่องจาก spark ใช้การประเมินแบบสันหลังยาวและเอ็นจิ้น sql สามารถกดตัวกรองลงได้ ประสิทธิภาพจึงไม่แย่

person xuanyue    schedule 13.07.2017
comment
และสมมติว่ามันเป็น json เดียวต่อบรรทัด? - person Hagai; 14.07.2017