HDFS에서 데이터를 검색 할 때 파일 메타 데이터를 가져 오는 방법은 무엇입니까?

마크 루신 에브 게니

HDFS에서 데이터를 요청했는데 읽은 파일의 메타 데이터를 가져오고 싶습니다. 이를 통해 주어진 순간에 사용 가능한 데이터를 기반으로 한 보고서를 작성할 수 있습니다.

org.apache.hadoop.fs.FileSystem모든 파일 목록을 얻는 데 사용할 솔루션을 찾았습니다 . 분할 규칙을 알고 있으며 row -> meta수신 된 목록을 기반으로 매핑을 작성할 수 있습니다 .

그러나이 결정은 구현 및 지원하기가 어렵습니다. 동일한 결과를 얻을 수있는 더 간단한 방법이 있습니까?

D3V

가장 쉬운 방법은 spark udf input_file_name입니다.

import scala.collection.mutable.Map
import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.fs.{FileSystem, Path}

val df = spark.read.text("<path>").withColumn("input_file_name", input_file_name()).repartition($"input_file_name")

def getMetadata(rdd: Iterator[Row]) = {
    val map = Map[String, Long]()
    val fs = FileSystem.get(new Configuration())
    rdd.map(row => {
                val path = row.getString(row.size -1)
                if(! map.contains(path)){
                    map.put(path,fs.listStatus(new Path(path))(0).getModificationTime())
                }
                Row.fromSeq(row.toSeq ++ Array[Any](map(path)))
            })
}

spark.createDataFrame(df.rdd.mapPartitions(getMetadata),df.schema.add("modified_ts", LongType)).show(10000,false)

다음 modified_tsmtime파일입니다.

데이터의 크기에 따라 조인을 사용할 수도 있습니다. 논리는 다음과 같습니다.

import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.fs.{FileSystem, Path}
import org.apache.spark.sql.functions._

val mtime =(path:String)=> FileSystem.get(new Configuration()).listStatus(new Path(path)).head.getModificationTime
val mtimeUDF = udf(mtime)

val df = spark.read.text("<path>").withColumn("input_file_name", input_file_name())

val metadata_df = df.select($"input_file_name").distinct().withColumn("mtime", mtimeUDF($"input_file_name"))

val rows_with_metadata = df.join(metadata_df , "input_file_name")
rows_with_metadata.show(false)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Azure 파일 공유에서 파일 메타 데이터를 가져 오는 방법은 무엇입니까?

분류에서Dev

Android에서 지원되는 오디오 파일로 메타 데이터를 가져오고 수정하는 방법은 무엇입니까?

분류에서Dev

함수를 메타 데이터에 전달할 때`this`가 정의되지 않은 이유와이를 수정하는 방법은 무엇입니까?

분류에서Dev

react-router에서 동일한 수준의 경로를 전환 할 때 데이터를 가져 오는 올바른 방법은 무엇입니까?

분류에서Dev

OPF 파일에 유형 메타 데이터 요소를 추가하는 방법은 무엇입니까?

분류에서Dev

일치하지 않는 데이터를 구문 분석 할 때 헤더 행을 "검색"하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

HDFS에서 파티션 데이터를 수동으로 삭제할 때 Hive에서 파티션 메타 데이터를 업데이트하는 방법

분류에서Dev

데이터베이스에서 데이터를 검색 할 때 서식을 유지하기 위해 xsl을 편집하는 방법은 무엇입니까?

분류에서Dev

중포 기지에서 데이터를 검색 할 때 정지 응용 프로그램을 일으키는 원인이되는 오류가 무엇입니까?

분류에서Dev

명령 줄에서 파일 메타 데이터를 가져 오는 방법이 있습니까?

분류에서Dev

키가 하나의 개체 만 검색 할 때 개체에 데이터를 추가하는 방법은 무엇입니까? PARSE.COM 스위프트

분류에서Dev

Firebase에 데이터를 추가 할 때 Angularfire에서 데이터가 전송되지 않을 때 오류를 포착하는 방법은 무엇입니까?

분류에서Dev

파일에서 데이터를 인쇄 할 때 증가 된 숫자를 제공하는 방법은 무엇입니까?

분류에서Dev

LINQ를 사용하여 XML 파일에서 데이터를 가져 오는 방법은 무엇입니까?

분류에서Dev

Ruby on Rails : 데이터베이스에서 사용자를 마이그레이션 할 때 확인 이메일을 방지하는 방법은 무엇입니까?

분류에서Dev

데이터베이스에서 레코드를 검색 할 때 따옴표를 이스케이프하는 방법은 무엇입니까?

분류에서Dev

이벤트를 추가 할 때 Android 캘린더에서 데이터를 가져 오는 방법은 무엇입니까?

분류에서Dev

olingo에서 메타 데이터를 확장 할 때 JPA 파일 이름을 가져옵니다.

분류에서Dev

Vue에서 readfile로 JSON 파일에서 데이터를 가져 오는 방법은 무엇입니까?

분류에서Dev

오라클 데이터베이스 검색 쿼리에서 낙타 케이스 데이터를 검색하는 방법은 무엇입니까?

분류에서Dev

Java의 파일 이진 검색 트리에서 데이터를로드하는 방법은 무엇입니까?

분류에서Dev

FutureBuilder를 사용할 때 데이터를 한 번만 가져 오는 방법은 무엇입니까?

분류에서Dev

월별 데이터가 연도별로 열에있을 때 이전 12 개월 동안의 데이터를 검색하는 방법은 무엇입니까?

분류에서Dev

R arrow의 feather 파일에서 열 이름과 메타 데이터를 읽는 방법은 무엇입니까?

분류에서Dev

파일에서 클래스 객체로 데이터를 가져 오는 방법은 무엇입니까?

분류에서Dev

cloudant 데이터베이스를 검색 할 때 '정렬'을 사용하는 방법은 무엇입니까?

분류에서Dev

Object를 반환 할 때 onLoadFinished ()가 loadInBackground ()에서 데이터를받는 방법은 무엇입니까?

분류에서Dev

React에서 소품이 변경 될 때 데이터 및 setState를 가져 오는 방법은 무엇입니까?

분류에서Dev

델파이의 데이터베이스에서 검색 할 때 행에서 값을 얻는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Azure 파일 공유에서 파일 메타 데이터를 가져 오는 방법은 무엇입니까?

  2. 2

    Android에서 지원되는 오디오 파일로 메타 데이터를 가져오고 수정하는 방법은 무엇입니까?

  3. 3

    함수를 메타 데이터에 전달할 때`this`가 정의되지 않은 이유와이를 수정하는 방법은 무엇입니까?

  4. 4

    react-router에서 동일한 수준의 경로를 전환 할 때 데이터를 가져 오는 올바른 방법은 무엇입니까?

  5. 5

    OPF 파일에 유형 메타 데이터 요소를 추가하는 방법은 무엇입니까?

  6. 6

    일치하지 않는 데이터를 구문 분석 할 때 헤더 행을 "검색"하는 가장 좋은 방법은 무엇입니까?

  7. 7

    HDFS에서 파티션 데이터를 수동으로 삭제할 때 Hive에서 파티션 메타 데이터를 업데이트하는 방법

  8. 8

    데이터베이스에서 데이터를 검색 할 때 서식을 유지하기 위해 xsl을 편집하는 방법은 무엇입니까?

  9. 9

    중포 기지에서 데이터를 검색 할 때 정지 응용 프로그램을 일으키는 원인이되는 오류가 무엇입니까?

  10. 10

    명령 줄에서 파일 메타 데이터를 가져 오는 방법이 있습니까?

  11. 11

    키가 하나의 개체 만 검색 할 때 개체에 데이터를 추가하는 방법은 무엇입니까? PARSE.COM 스위프트

  12. 12

    Firebase에 데이터를 추가 할 때 Angularfire에서 데이터가 전송되지 않을 때 오류를 포착하는 방법은 무엇입니까?

  13. 13

    파일에서 데이터를 인쇄 할 때 증가 된 숫자를 제공하는 방법은 무엇입니까?

  14. 14

    LINQ를 사용하여 XML 파일에서 데이터를 가져 오는 방법은 무엇입니까?

  15. 15

    Ruby on Rails : 데이터베이스에서 사용자를 마이그레이션 할 때 확인 이메일을 방지하는 방법은 무엇입니까?

  16. 16

    데이터베이스에서 레코드를 검색 할 때 따옴표를 이스케이프하는 방법은 무엇입니까?

  17. 17

    이벤트를 추가 할 때 Android 캘린더에서 데이터를 가져 오는 방법은 무엇입니까?

  18. 18

    olingo에서 메타 데이터를 확장 할 때 JPA 파일 이름을 가져옵니다.

  19. 19

    Vue에서 readfile로 JSON 파일에서 데이터를 가져 오는 방법은 무엇입니까?

  20. 20

    오라클 데이터베이스 검색 쿼리에서 낙타 케이스 데이터를 검색하는 방법은 무엇입니까?

  21. 21

    Java의 파일 이진 검색 트리에서 데이터를로드하는 방법은 무엇입니까?

  22. 22

    FutureBuilder를 사용할 때 데이터를 한 번만 가져 오는 방법은 무엇입니까?

  23. 23

    월별 데이터가 연도별로 열에있을 때 이전 12 개월 동안의 데이터를 검색하는 방법은 무엇입니까?

  24. 24

    R arrow의 feather 파일에서 열 이름과 메타 데이터를 읽는 방법은 무엇입니까?

  25. 25

    파일에서 클래스 객체로 데이터를 가져 오는 방법은 무엇입니까?

  26. 26

    cloudant 데이터베이스를 검색 할 때 '정렬'을 사용하는 방법은 무엇입니까?

  27. 27

    Object를 반환 할 때 onLoadFinished ()가 loadInBackground ()에서 데이터를받는 방법은 무엇입니까?

  28. 28

    React에서 소품이 변경 될 때 데이터 및 setState를 가져 오는 방법은 무엇입니까?

  29. 29

    델파이의 데이터베이스에서 검색 할 때 행에서 값을 얻는 방법은 무엇입니까?

뜨겁다태그

보관