Spark SQL에서 행을 구성하는 레코드 목록을 포함하는 개체가 있습니다 (생각한 사람 Seq[Any]
). 에는 .getInt(0)
또는 getString(2)
과 같은 서수 접근자가 있습니다.스칼라 서수 메서드 호출 별칭
인사말 0 = ID 및 서수 1 = 이름. 서수가 무엇인지 기억하기가 어려워 지므로 코드를 혼란스럽게 만듭니다.
말은 예를 들어 내가 코드
def doStuff(row: Row) = {
//extract some items from the row into a tuple;
(row.getInt(0), row.getString(1)) //tuple of ID, Name
}
내가 행 객체에서 이러한 필드에 대한 별칭을 어떻게 만들 수된다 질문을 다음습니까?
암시적인 Row 객체를 사용하는 메소드를 만들 수 있다고 생각했습니다.
def id(implicit row: Row) = row.getInt(0)
def name(implicit row: Row) = row.getString(1)
그러면 위의 내용을 다음과 같이 다시 쓸 수 있습니다.
def doStuff(implicit row: Row) = {
//extract some items from the row into a tuple;
(id, name) //tuple of ID, Name
}
더 좋게/더 깔끔한 접근 방법이 있습니까?
아, 좋은 지적입니다. 포주를 잊어 버렸습니다. 내 도서관 패턴! – NightWolf
아,'AnyRef'가 아니라'extends AnyVal'이되어서는 안 될까요? 가치 클래스 ... – NightWolf
@NightWolf 네가 맞아! -> 수정 됨. 감사. – maasg