Incorrect string value: '\xEC\x9D\xB4 \xED\x95...' for column 'WorkflowRuntimeManifest' at row 1"
sudo vi /usr/local/mysql/my.cnf
파일을 수정해주면 되지만, dsl pipeline에서 해당 문제가 발생한건 어떻게 해결해야할까? 대충 찾아보니 일단 같은 문제로 이슈를 올려둔 사람은 없다.from tfjob_ops import *
을 했다는 것 -> 검증 결과 상관없다.코드의 모든 한글 주석 및 DocString을 영문으로 변경하니 오류가 사라졌습니다.
다만 코드를 두 파일로 나누기 전엔 정상적으로 한글이 있어도 동작했는데, 갑자기 이러시는 이유가 뭘까요?
댓글 알림 기능이 없어서 이제 봤네요.
1. 컨테이너를 이용한 코드를 워크플로로 컴파일 할 때는 문제가 없습니다.(단순히 컨테이너를 실행시키는 것만 yaml 형식으로 변환되기 때문입니다.)
2. 다만 함수를 containerOp로 변환하는 func_to_container_op
을 사용할 때는 변환받는 함수에 한글이 포함되면 안됩니다. workflow로 컴파일해서 run 시킬 때 컴파일 된 yaml 파일을 살펴보면 아래처럼 디코딩이 잘못 된 문자들이 포함되게 됩니다.
dfh_me[\"SETMODE_INT\"] = dfh_me[\"SETMODE\"].replace(\n # [\"\uc1a1\ud48d\uc6b4\uc804\",
\"\uac00\uc628\uc6b4\uc804\", \"\uc1a1\ud48d+\uc81c\uc2b5\", \"\ub0c9\uac01\uc6b4\uc804\",
\"\ub0c9\uac01+\uc81c\uc2b5\"], [1, 2, 3, 4, 5]\n # )\n dfh_me[\"SETMODE_INT\"].loc[dfh_me[\"RUNSTOP\"]
따라서 해당 방법으로 containerOp를 생성하고자 할 때는 한글이 포함된 로직을, 변환하는 함수 외부의 별도 함수로 만들어서 처리하고 반환되는 값만 받아오면 됩니다. 그럼 함수를 호출하는 구문만 컴파일되기 때문에 한글이 들어가지 않아 정상적으로 실행됩니다.
예를 들어 저는 dfh_me["SETMODE_INT"] = dfh_me["SETMODE"].replace(["송풍운전", "가온운전", "송풍+제습", "냉각운전", "냉각+제습"], [1, 2, 3, 4, 5])
이 구문이 문제가 되었는데, 이미 데이터를 한글이 포함되도록 받아오기 때문에 데이터 수집 과정부터 수정하는건 일이 복잡해졌습니다.
그래서 처리구문을 별도의 함수로 작성하고 반환값만 받아오시는 식으로 해결하였습니다.
주석도 마찬가지로 func_to_container_op등에 쓰일 함수 내부에는 한글이 포함되지 않도록 해주시면 되겠습니다.
저도 같은에러가 있어서 찾게됐습니다.
한글 쓴게 없는데 왜 에러가 나나 했더니 출력하는 string에 포함된 한글이더군요 저는