基于DeepSeek + VSCode 实现AI辅助编程

随着人工智能技术的飞速发展,AI 辅助编程逐渐成为提升开发效率、优化代码质量的重要工具。本文通过结合 DeepSeek 的强大语言模型和 VSCode 的高效开发环境,展示了如何利用 AI 辅助编程完成一个经典的 MapReduce 词频统

基于DeepSeek + VSCode 实现AI辅助编程

随着人工智能技术的飞速发展,AI 辅助编程逐渐成为提升开发效率、优化代码质量的重要工具。本文通过结合 DeepSeek 的强大语言模型和 VSCode 的高效开发环境,展示了如何利用 AI 辅助编程完成一个经典的 MapReduce 词频统计任务。这一实践不仅展示了 AI 在编程中的应用潜力,还为开发者提供了一个高效、便捷的开发流程示例,帮助读者快速上手 AI 辅助编程,并探索其在实际项目中的应用价值。

实验环境:

  1. VSCode
  2. Cline
  3. DeepSeek
  4. Ubuntu 22.04
  5. Hadoop 3.3.5

以上实验环境并不要求完全一致,能实现效果即可。

安装与配置Cline

Cline 是一个 VSCode 插件,可以接入 DeepSeek 的 API,用于生成代码、解释代码或者修复代码问题。在VSCode左侧“扩展”中搜索Cline并下载

安装完成后,我们点击右上角齿轮图案进入设置,选择当前的AI辅助编程使用的大模型。对于DeepSeek,我们有两种方案:

  1. 使用已经安装好的本地Ollama服务:/ 可以参考这篇博客中的Ollama安装DeepSeek-r1,输入对应的Ollama服务地址,如http://localhost:11434,如果Ollama服务正确运行,则会显示你已经安装的模型,如下图中的deepseek-r1-1.5b:latest
  1. 可以使用DeepSeek提供的API,至 中就可以购买并获得API

配置完成后就可以开始使用Cline,具体的功能可以对照下图

AI辅助编程-以词频统计案例为例实现

为了更好地展示AI辅助编程的效果,笔者在这采用使用DeepSeek API的方式,这样的请求方式能使用满血的DeepSeek,方便读者们看到效果,实际实验的过程中,使用自己安装的DeepSeek 7b也是可以的。

为了更好地实现辅助编程,我首先用maven创建了一个干净的新项目,项目的架构图为

代码语言:javascript代码运行次数:0运行复制
demo
├─ pom.xml
├─ src
│  └─ main
│     └─ java
└─ target

我本机安装的hadoop版本为3.3.5,因此我提前在pom.xml中引入基础的包,方便AI使用

代码语言:javascript代码运行次数:0运行复制
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns=".0.0" xmlns:xsi=";
  xsi:schemaLocation=".0.0 .0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.example</groupId>
  <artifactId>demo</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>demo</name>
  <!-- FIXME change it to the project's website -->
  <url>;/url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <mavenpiler.source>1.8</mavenpiler.source>
    <mavenpiler.target>1.8</mavenpiler.target>
    <hadoop.version>3.3.5</hadoop.version> 
  </properties>

    <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <!-- 导入hadoop依赖环境 -->
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>${hadoop.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-hdfs</artifactId>
        <version>${hadoop.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-mapreduce-client-core</artifactId>
        <version>${hadoop.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>${hadoop.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-yarn-api</artifactId>
        <version>${hadoop.version}</version>
    </dependency>
  </dependencies>

  ...
</project>

之后新建对话的第一个问题就详细描述我要完成的任务:

代码语言:javascript代码运行次数:0运行复制
**任务目标**
使用JAVA语言,用MapReduce框架实现词频统计,要求输出词频排序结果

**输入数据**

1. txt格式
2. 请你随意生成三个txt内容用于测试,文件不用很大,每个文件有几条数据即可

**开发要求**

1. 在我当前创建好的maven项目中开发
2. 输入数据和输出数据都保存在本地,不需要使用HDFS
3. 直接返回代码,告诉我我该怎么做。

之后Cline根据我的要求,编写好对应的promt去请求DeepSeek,并依次创建了测试数据文件

接着又依次根据我的需求,创建了

WordCountMapper.java

WordCountReducer.java

WordCount.java

代码语言:javascript代码运行次数:0运行复制
package com.example;

import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

public class WordCountMapper extends Mapper<Object, Text, Text, IntWritable> {
    private final static IntWritable one = new IntWritable(1);
    private Text word = new Text();

    public void map(Object key, Text value, Context context) 
            throws IOException, InterruptedException {
        StringTokenizer itr = new StringTokenizer(value.toString());
        while (itr.hasMoreTokens()) {
            word.set(itr.nextToken());
            context.write(word, one);
        }
    }
}
代码语言:javascript代码运行次数:0运行复制
package com.example;

import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;

public class WordCountReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
    private IntWritable result = new IntWritable();

    public void reduce(Text key, Iterable<IntWritable> values, Context context)
            throws IOException, InterruptedException {
        int sum = 0;
        for (IntWritable val : values) {
            sum += val.get();
        }
        result.set(sum);
        context.write(key, result);
    }
}
代码语言:javascript代码运行次数:0运行复制
package com.example;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

public class WordCount {
    public static void main(String[] args) throws Exception {
        if (args.length != 2) {
            System.err.println("Usage: WordCount <input path> <output path>");
            System.exit(-1);
        }

        Configuration conf = new Configuration();
        Job job = Job.getInstance(conf, "word count");
        job.setJarByClass(WordCount.class);
        job.setMapperClass(WordCountMapper.class);
        job.setReducerClass(WordCountReducer.class);
        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);

        FileInputFormat.addInputPath(job, new Path(args[0]));
        FileOutputFormat.setOutputPath(job, new Path(args[1]));

        System.exit(job.waitForCompletion(true) ? 0 : 1);
    }
}

之后Cline认为代码编写完成,可以使用maven直接打包,并用hadoop指令运行,但这时候遇到了一个问题,我并没有配置hadoop的环境变量(也就是说用hadoop指令需要到我安装的hadoop目录/usr/local/hadoop下),因此我提示了Cline这一点

在这之后,项目成功被打包为jar包,并执行,输出结果至创建好的/output文件夹

最终效果

最终Cline + DeepSeek自动创建的项目结构为:

output文件夹中成功输出了词频统计:

本文验证了AI辅助编程在MapReduce开发中的有效性,其代码生成效率与质量均达到专业开发标准。未来随着AI模型对分布式系统知识的深化,该方法有望成为大规模数据处理任务的首选开发模式。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-02,如有侵权请联系 cloudcommunity@tencent 删除hadoop编程开发统计DeepSeek

发布者:admin,转转请注明出处:http://www.yc00.com/web/1747977628a4713982.html

相关推荐

  • 基于DeepSeek + VSCode 实现AI辅助编程

    随着人工智能技术的飞速发展,AI 辅助编程逐渐成为提升开发效率、优化代码质量的重要工具。本文通过结合 DeepSeek 的强大语言模型和 VSCode 的高效开发环境,展示了如何利用 AI 辅助编程完成一个经典的 MapReduce 词频统

    7小时前
    10

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信