Как транслировать местоположение hdfs для всех файлов и одновременно записывать в другое местоположение hdfs - PullRequest
0 голосов
/ 08 октября 2019

У меня есть около 20K файлов JSON в формате паркета в одной папке hdfs. Моя работа состоит в том, чтобы передать местоположение и прочитать все файлы в кадре данных, после чего записать то же самое в другое местоположение hdfs.

Может кто-нибудь подсказать, пожалуйста, как мне это сделать. Для решения этой задачи я использую платформу Azure Databricks и pyspark.

1 Ответ

0 голосов
/ 08 октября 2019

Я не уверен, хотите ли вы сделать это «потоковым» способом или в «пакетном» режиме. Однако вы можете сделать это, используя возможности потоковой передачи, и запустить задание за один раз.

    (spark
.readStream # Read data as streaming
.schema(USER_SCHEMA) # For streaming, you must provide the input schema of data
.format("parquet")
.load(PARQUET_ORIGIN_LOCATION)
.writeStream
.format("delta")
.option("path", PARQUET_DESTINATION_LOCATION + 'data/')  # Where to store the data
.option("checkpointLocation", PARQUET_DESTINATION_LOCATION + 'checkpoint/')  # The check point location
.option("overwriteSchema", True)  # Allows the schema to be overwritten
.queryName(QUERY_NAME)  # Name of the query
.trigger(once=True)  # For Batch Processing
.start()
)
...