스칼라 스파크의 엑셀(xls,xlsx) 파일에서 데이터 프레임을 구성하는 방법은 무엇입니까?
나는 큰 것을 가지고 있습니다.Excel(xlsx and xls)
의 시트가 .RDD
또는Dataframe
그것이 다른 것들과 연결될 수 있도록.dataframe
나중에. Apache POI를 사용하여 저장하려고 생각했습니다.CSV
리고읽습다니그다니▁and를 읽으세요.csv
dataframe
하지만 이 과정에서 도움이 될 수 있는 라이브러리나 API가 있다면 쉬울 것입니다.어떤 도움이든 대단히 감사합니다.
은 당의문대해사것입다니용는하은결책을 사용하는 것입니다.Spark Excel
프로젝트에 대한 종속성.
스파크 엑셀은 유연성이 있습니다.options
가지고 놀 수 있는.
는 다음코읽테습다니했스트도록를드▁에서 읽기 위해 다음 코드를 테스트했습니다.excel
다니합환으로 합니다.dataframe
그것은 하게 작동합니다.
def readExcel(file: String): DataFrame = sqlContext.read
.format("com.crealytics.spark.excel")
.option("location", file)
.option("useHeader", "true")
.option("treatEmptyValuesAsNulls", "true")
.option("inferSchema", "true")
.option("addColorColumns", "False")
.load()
val data = readExcel("path to your excel file")
data.show(false)
당신은 줄다니있을 줄 수 .sheetname
~하듯이option
Excel 시트에 여러 시트가 있는 경우
.option("sheetName", "Sheet2")
도움이 되길 바랍니다.
다음은 전체 옵션 집합과 함께 Excel에서 읽고 쓰는 읽기 및 쓰기 예제입니다.
Scala API Spark 2.0+:
Excel 파일에서 데이터 프레임 만들기
import org.apache.spark.sql._
val spark: SparkSession = ???
val df = spark.read
.format("com.crealytics.spark.excel")
.option("sheetName", "Daily") // Required
.option("useHeader", "true") // Required
.option("treatEmptyValuesAsNulls", "false") // Optional, default: true
.option("inferSchema", "false") // Optional, default: false
.option("addColorColumns", "true") // Optional, default: false
.option("startColumn", 0) // Optional, default: 0
.option("endColumn", 99) // Optional, default: Int.MaxValue
.option("timestampFormat", "MM-dd-yyyy HH:mm:ss") // Optional, default: yyyy-mm-dd hh:mm:ss[.fffffffff]
.option("maxRowsInMemory", 20) // Optional, default None. If set, uses a streaming reader which can help with big files
.option("excerptSize", 10) // Optional, default: 10. If set and if schema inferred, number of rows to infer schema from
.schema(myCustomSchema) // Optional, default: Either inferred schema, or all columns are Strings
.load("Worktime.xlsx")
Excel 파일에 데이터 프레임 쓰기
df.write
.format("com.crealytics.spark.excel")
.option("sheetName", "Daily")
.option("useHeader", "true")
.option("dateFormat", "yy-mmm-d") // Optional, default: yy-m-d h:mm
.option("timestampFormat", "mm-dd-yyyy hh:mm:ss") // Optional, default: yyyy-mm-dd hh:mm:ss.000
.mode("overwrite")
.save("Worktime2.xlsx")
참고: sheet1 또는 sheet2 대신 이름을 사용할 수도 있습니다.위의 예에서 Daily는 시트 이름입니다.
- 스파크 쉘에서 사용하고 싶다면,
는 스파크에 할 수 패키지입니다.--packages
들어 셸을 할 때 시키려면:예를 들어 스파크 셸을 시작할 때 포함하려면 다음과 같이 하십시오.
$SPARK_HOME/bin/spark-shell --packages com.crealytics:spark-excel_2.11:0.13.1
- 종속성을 추가해야 합니다(Maven 등의 경우).
groupId: com.crealytics artifactId: spark-excel_2.11 version: 0.13.1
팁: 이 방법은 특히 엑셀에 샘플 데이터가 있는 엑셀 시트를 넣을 수 있는 메이븐 테스트 사례를 작성할 때 매우 유용합니다.
src/main/resources
하면 단위 케이스 수 . 이 에는 "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""를 생성합니다.DataFrame
엑셀 시트에서...
- 고려할 수 있는 또 다른 옵션은 스파크-하둡 오피스-ds입니다.
Hadoop Office 라이브러리용 Spark 데이터 소스입니다.이 스파크 데이터 소스는 스파크 2.0.1 이상을 가정합니다.그러나 Hadoop Office 라이브러리는 Spark 1.x에서 직접 사용할 수도 있습니다. 현재 이 데이터 소스는 다음과 같은 형식의 Hadoop Office 라이브러리를 지원합니다.
Excel 데이터 원본 형식:
org.zuinnote.spark.office.Excel
이전 Excel(.xls) 및 새 Excel(.xls) 로드 및 저장 이 데이터 소스는 Spark-packages.org 및 Maven Central에서 사용할 수 있습니다.
또는 암호화된 Excel 문서 및 링크된 워크북을 지원하는 Hadoop Office 라이브러리(https://github.com/ZuInnoTe/hadoopoffice/wiki), 를 사용할 수 있습니다.물론 스파크도 지원됩니다.
나는 com.crealytics.spark.excel-0.11 버전 jar를 사용했고 spark-Java에서도 마찬가지일 것입니다. javaSparkContext를 SparkContext로 변경하기만 하면 됩니다.
tempTable = new SQLContext(javaSparkContxt).read()
.format("com.crealytics.spark.excel")
.option("sheetName", "sheet1")
.option("useHeader", "false") // Required
.option("treatEmptyValuesAsNulls","false") // Optional, default: true
.option("inferSchema", "false") //Optional, default: false
.option("addColorColumns", "false") //Required
.option("timestampFormat", "MM-dd-yyyy HH:mm:ss") // Optional, default: yyyy-mm-dd hh:mm:ss[.fffffffff] .schema(schema)
.schema(schema)
.load("hdfs://localhost:8020/user/tester/my.xlsx");
이것이 도움이 되기를 바랍니다.
val df_excel= spark.read.
format("com.crealytics.spark.excel").
option("useHeader", "true").
option("treatEmptyValuesAsNulls", "false").
option("inferSchema", "false").
option("addColorColumns", "false").load(file_path)
display(df_excel)
언급URL : https://stackoverflow.com/questions/44196741/how-to-construct-dataframe-from-a-excel-xls-xlsx-file-in-scala-spark
'programing' 카테고리의 다른 글
"Git push non-fast-forward updates rejected"는 무엇을 의미합니까? (0) | 2023.10.01 |
---|---|
ui-router의 뷰에서 사용자 지정 데이터를 상태로 전달하려면 어떻게 해야 합니까? (0) | 2023.10.01 |
특수 주체 dbo를 사용할 수 없습니다.오류 15405 (0) | 2023.06.23 |
왜 우리는 일부 구조 변수를 괄호 안에 넣지 않습니까? (0) | 2023.06.23 |
구성 속성이 속성을 바인딩하지 않음 (0) | 2023.06.23 |