大批量的txt文件入库hdfs的示例代码
时间: 2024-09-19 10:11:29 浏览: 36
Java API操作HDFS示例代码.rar
在Hadoop生态系统中,通常使用Hadoop Streaming或者MapReduce API来处理大量文本文件并将其加载到HDFS(Hadoop分布式文件系统)。这里以Python的PySpark为例,因为它支持简单地操作大数据集。
```python
from pyspark.sql import SparkSession
# 创建SparkSession
spark = SparkSession.builder.appName('txt_to_hdfs').getOrCreate()
def load_txt(file_path):
# 使用Spark读取txt文件
lines = spark.read.text(file_path)
# 假设每行都是一个键值对,例如key-value形式的数据
data_rdd = lines.rdd.map(lambda x: (x[0], x[1])) # 这里假设第0和1列为内容,根据实际文件格式调整
# 将数据转换为DataFrame,然后保存到HDFS
df = spark.createDataFrame(data_rdd)
df.write.format('text').mode('overwrite').save('hdfs://your_namenode_host/path/to/save')
# 遍历目录下的所有txt文件并将它们加载到HDFS
for root, dirs, files in os.walk('path/to/your/text/files'):
for file in files:
if file.endswith('.txt'):
full_file_path = os.path.join(root, file)
load_txt(full_file_path)
# 关闭SparkSession
spark.stop()
```
这个示例中,你需要替换`'hdfs://your_namenode_host/path/to/save'`为你想要存放数据的实际HDFS路径,以及`'path/to/your/text/files'`为你存放txt文件的本地目录。
阅读全文