분류 전체보기
GCP12 :: Apache Beam, Map() vs FlatMap()
GCP12 :: Apache Beam, Map() vs FlatMap()
2020.08.15ㅡ. Map() vs FlatMap() Map() 에서는 Input 과 Output 이 일대일 관계로 나타나 있습니다. FlatMap() 에서는 Input 에 대해 여러개의 출력을 반환할 수 있습니다. 또한, FlatMap() 과 함께 사용되는 yield 키워드는 더이상 반환할 데이터가 없을 때까지 한번, 하나 데이터를 반환하게 됩니다. 위 메소드는 병렬처리할 때 방법이 서로 다릅니다.
Python09 :: python format, join
Python09 :: python format, join
2020.08.15format 문자열 포맷을 결정할 수 있습니다. count = 5 print("run {} program".format(count)) #result1 : run 5 program join alphabet = ['a', 'b', 'c', 'd', 'e'] print (",".join(alphabet)) print ("\n".join(alphabet)) #result1 : a,b,c,d,e #result2 : a b c d e join을 수행하면 문자열 뒤에 지정한 형식의 구분자가 포함되게 됩니다.
GCP11 :: Google Cloud Platform 명령어 정리
GCP11 :: Google Cloud Platform 명령어 정리
2020.08.15Google Cloud Platform 관련 실습을 진행하다 모르는 명령어 관련 정리 하고자 합니다. 1) bq mk flights bq 명령줄 도구를 사용해서 쿼리를 실행하고 데이터를 로드할 수 있습니다. e.g) bq mk new_dataset or bq mk new_dataset.new_table --bq help CLI 명령어로 쳐보면 mk는 Create a dataset, table, view, or transfer configuration with this name 으로 설명되어 있습니다. --bq help load 에서 구체적인 스키마에 관련된 정보를 확인해볼 수 있습니다.
Python08 :: python csv format 만들기
Python08 :: python csv format 만들기
2020.08.15import io import csv output = io.StringIO() csvdata = [1,2,'abc market','hi everyone','common'] writer = csv.writer(output,quoting=csv.QUOTE_NONNUMERIC) writer.writerow(csvdata) print(type(output.getvalue())) print(output.getvalue()) result #str #1,2,"abc market","hi everyone","common"
IT06 :: 정보처리기사 (패킷 문제)
IT06 :: 정보처리기사 (패킷 문제)
2020.08.15이 문제는 1) 보내야 하는 패킷 1920패킷 2)담을 수 있는 최대 패킷 크기가 500 비트에서 48비트 패킷 헤더를 뺀 452 두가지 알아야 해결할 수 있는 문제입니다. 결과적으로 네트워크 접속 계층에 전달할 수 있는 패킷은 500비트 패킷 * 4 + ( 24 비트 헤더 + 112비트), 452비트씩 보내면 112비트가 남게됩니다.(1920비트/452비트) 500비트인 이유는 452비트트에 헤더 비트를 포함한것입니다. 보내야하므로) 마지막 패킷에도 24비트가 붙은것이므로 더해줍니다. (물리계층을 가는게 아니니까 24비트만 더해주게 됩니다.)
Python07 :: python 클래스 이름, 클래스 변수
Python07 :: python 클래스 이름, 클래스 변수
2020.08.14self.records_read = Metrics.counter(self.__class__, 'recordsRead') 모르는 문법이 나와서 정리합니다. 클래스 내부에서 self._ _class_ _._ _name_ _ 하게 되면 해당 name 이 붙어있는 class name을 참조하게 됩니다. 3가지 개념이 존재하는데 1. 클래스 이름 2. 클래스 변수 3. 인스턴스 변수 각각에 대해서 예제 코드로 살펴보겠습니다. Code : class House: def __init__(self, str_price): self.str_price = str_price def info(self): print("class name:", self.__class__.__name__) # // 클래스이름을 출력한다 print(..
GCP10 :: Dataflow 정리
GCP10 :: Dataflow 정리
2020.08.14ㅡ. Dataflow 란? Dataflow 란 무엇일까? 많은 데이터를 가져와서 (수 GB, 수 TB) 데이터와 결합 하여 의미 있는 데이터를 산출 하는 과정을 의미합니다. 배치 과정에서 위에서와 같이 말할 수 있지만 스트리밍 변환 과정도 존재합니다. 예를들어, 스트리밍 변환은 데이터가 도착할때 추가적인 데이터를 추가해서 반환한다던지, Filter 를 거쳐서 해당 데이터만 반환한다던지 특징이 있습니다. ㅡ. Apache Beam 이러한 로직들을 구현하게 도와주는것이 Apache Beam 에서 코드를 작성하면 됩니다. 그래서 Apache Beam으로 데이터 파이프라인을 구축하는 방법에 대해 알아야 합니다. Apache Beam에서 파이프라인은 상위 컨테이너(파이프라인) 파이프라인을 통해 흘러가는 데이터(P..
ISSUE10 :: line 91, in finish_bundle NameError: name 'beam' is not defined During handling of the above exception, another exception occurred:
ISSUE10 :: line 91, in finish_bundle NameError: name 'beam' is not defined During handling of the above exception, another exception occurred:
2020.08.14finish_bundle_outputs File "/Users/ㅁㅁㅁㅁ/PycharmProjects/apachebeam-dataflow-project/src/main.py", line 91, in finish_bundle NameError: name 'beam' is not defined During handling of the above exception, another exception occurred: Dataflow를 실행하는 과정에서 에러가 발생하였다. beam 이라고 정의되어 있는것이 없다고 나오는데 실제로 코드상에서는 import 한 상황이다. (import apache_beam as beam) 무엇이 이슈일까? stackoverflow 를 찾아보니 다음 해결책이 있었다. 1. apache-..
GCP09 :: Apache Beam Functions
GCP09 :: Apache Beam Functions
2020.08.14Filter Filter를 위한 함수를 생성하고 datapipeline을 생성할때 해당 함수를 걸어주면 Filter 가 진행됩니다. e.g) | 'Filter' >> beam.Filter([function-name]) 굳이, 함수를 생성하지 않고도 lambda 를 생성하여 Filter를 거는 방법도 있습니다. e.g) beam.Filter(lambda plant : plant['duration'] == 'perennial' ) => key가 duration 이고 value가 perennial 인것을 Filter Map str.strip function을 사용하는데 strip가 의미하는것은 화이트스페이스, \n, tabs등을 제거해서 보여준다. 이외에도 replace 기능들을 제공해줍니다. Pardo 한줄..
Python06 :: Python Project 구성하기
Python06 :: Python Project 구성하기
2020.08.14Python 코드를 작성하다가 프로젝트 구조를 어떻게 잡아야 할지 의문이 들어 포스팅 하게 되었습니다. ㅡ. 모듈 실질적으로 비즈니스를 수행하는 코드를 모듈 폴더에 두어 관리합니다. ㅡ. 라이선스 라이선스 문서 전문, 저작권이 포함되어야 하는 부분 입니다. ㅡ. requirements.txt 프로젝트 수행에 필요한 의존성을 명시하고 설치할 수 있도록 requirements.txt 에 명시합니다. ㅡ. docs 문서들을 명시합니다. ㅡ. 테스트 도구 테스트 수행에 필요한 Script 를 포함합니다. 모듈과 의존성이 있는것이 아니라 독립적으로 설정되어 실행될 수 있도록 해야 합니다. ㅡ. makeFile 프로젝트 관리하는데 유용한 작업들을 명시합니다. init : pip install -r requireme..
ISSUE09 :: Python ‘str’ object does not support item assignment solution
ISSUE09 :: Python ‘str’ object does not support item assignment solution
2020.08.14Python ‘str’ object does not support item assignment solution String immutable 하기 때문에 변경할 수 없습니다. An Example Scenario string = "aaaa" string[0] = "b" 이런 상황에서 발생하게 됩니다. 따라서, replace_string = "" 을 생성하고 The Solution string = "aaaa" replace_string = "" for i in range(len(string)) : if i==0 : replace_string+="b" else : replace_string+=string[i] print(replace_string) 이런식으로 사용합니다. Conclusion String은 변경..
GCP08 :: dataflow (작성중)(2)
GCP08 :: dataflow (작성중)(2)
2020.08.14csv 파일 양식이 다음과 같이 되어있다. category, language, year data1, data2, data3 Google Cloud Storage 에서 저장되어 있는 CSV 파일을 읽어서 category language year 순으로 되어 있는 데이터를 가공해서 처리할건데 첫번째) { category : { language : 횟수, language : 횟수 } } 저장할 생각입니다. 두번째) { category : { year : language, year : language } }, 단 여기서 language 상태에서 중복을 발생시키면 데이터 사이즈가 커지므로 포함 여부를 살펴보고 존재하지 않으면 넣지 않을 생각입니다. 첫번째 아이디어 구체화) IoT, 'c, c++, python',..