[HADOOP] Spark에서 열 머리글을 지정하고 사용하는 방법?
HADOOPSpark에서 열 머리글을 지정하고 사용하는 방법?
나는 아래와 같이 데이터 세트를 읽는다.
f = sc.textFile("s3://test/abc.csv")
내 파일에는 50 개 이상의 필드가 있으며 각 필드의 열 머리글을 내 스크립트의 뒷부분에서 참조하도록 지정합니다.
PySpark에서 어떻게 할 수 있습니까? DataFrame은 여기로 갈 수 있습니까?
PS - 불꽃을 초보자.
해결법
-
==============================
1.DataFrame을 사용하여 열 이름을 추가하는 방법은 다음과 같습니다.
DataFrame을 사용하여 열 이름을 추가하는 방법은 다음과 같습니다.
csv에 구분 기호 ','가 있다고 가정합니다. 데이터를 DataFrame으로 전송하기 전에 다음과 같이 준비하십시오.
f = sc.textFile("s3://test/abc.csv") data_rdd = f.map(lambda line: [x for x in line.split(',')])
데이터에 3 개의 열이 있다고 가정합니다.
data_rdd.take(1) [[u'1.2', u'red', u'55.6']]
이제 toDF ()를 사용하여이 RDD를 DataFrame으로 전송할 때 열 이름을 지정할 수 있습니다.
df_withcol = data_rdd.toDF(['height','color','width']) df_withcol.printSchema() root |-- height: string (nullable = true) |-- color: string (nullable = true) |-- width: string (nullable = true)
열 이름을 지정하지 않으면 기본 열 이름 '_1', '_2', ...이있는 DataFrame이 생성됩니다.
df_default = data_rdd.toDF() df_default.printSchema() root |-- _1: string (nullable = true) |-- _2: string (nullable = true) |-- _3: string (nullable = true)
-
==============================
2.이 질문에 대한 해결책은 실제로 실행중인 Spark 버전에 따라 다릅니다. Spark 2.0 이상이라고 가정하면 CSV를 DataFrame으로 읽고 RDD를 DataFrame으로 변환하거나 기존 데이터 프레임에 열을 추가하는 데 유용한 toDF가있는 열을 추가 할 수 있습니다.
이 질문에 대한 해결책은 실제로 실행중인 Spark 버전에 따라 다릅니다. Spark 2.0 이상이라고 가정하면 CSV를 DataFrame으로 읽고 RDD를 DataFrame으로 변환하거나 기존 데이터 프레임에 열을 추가하는 데 유용한 toDF가있는 열을 추가 할 수 있습니다.
filename = "/path/to/file.csv" df = spark.read.csv(filename).toDF("col1","col2","col3")
-
==============================
3.
f = sc.textFile("s3://test/abc.csv") <br /> header = f.first() header will give you as below:-<br /> u'col1,col2,col3' --> for example taking 3 columns name head = str(header).split(",") <br /> head will give you a list<br/> ['col1','col2','col3'] fDF = f.filter(lambda row: row!=header).map(lambda x: str(x).split(",")).toDF(head)<br/> fdF.show() <br/>
필요에 따라 데이터 프레임의 헤더와 데이터를 제공합니다.
from https://stackoverflow.com/questions/36608559/how-to-assign-and-use-column-headers-in-spark by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hadoop Mapper Context 객체 (0) | 2019.07.23 |
---|---|
[HADOOP] 하이브가 CTAS로 외부 테이블을 만들 수없는 이유는 무엇입니까? (0) | 2019.07.23 |
[HADOOP] Hadoop Namenode 메타 데이터 - fsimage 및 편집 로그 (0) | 2019.07.22 |
[HADOOP] Hadoop ORC 파일 - 작동 방법 - 메타 데이터를 가져 오는 방법 (0) | 2019.07.22 |
[HADOOP] JSP 서블릿 예외 (0) | 2019.07.22 |