zoukankan      html  css  js  c++  java
  • pyspark操作实例

    计算切好词的两个句子的LCS(最长公共子序列)

    # -*- coding: utf-8 -*-
    from pyspark.sql.functions import udf
    from pyspark.sql.types import IntegerType
    from pyspark.sql import SparkSession
    
    # pip install pyspark(管理员下运行cmd)
    
    # 解决编码问题
    import sys
    reload(sys)
    sys.setdefaultencoding('utf-8')
    
    spark = SparkSession.builder 
        .appName("LCS Test") 
        .enableHiveSupport() 
        .getOrCreate()
    
    df = spark.sql("select * from badou.lcs_data")
    df.show()
    
    
    def lcs(a, b):
        n = len(a)
        m = len(b)
        l = [[0] * (m + 1) for x in range(n + 1)]
        for i in range(1, n + 1):
            for j in range(1, m + 1):
                if a[i - 1] == b[j - 1]:
                    l[i][j] = l[i - 1][j - 1] + 1
                else:
                    # l[i][j] = max(l[i - 1][j], l[i][j - 1])
                    l[i][j] = l[i - 1][j] if l[i - 1][j]>l[i][j - 1] 
                        else l[i][j - 1]
        return l[-1][-1]
    
    
    lcs_udf = udf(lcs, IntegerType())
    df_score = df.withColumn("score", lcs_udf(df.a, df.b))
    df_score.show()
    View Code

    参考资料

    八斗大数据

  • 相关阅读:
    SpringMVC文件下载
    Servlet3.0文件上传
    SpringMVC拦截器的使用(入门)
    SpringMVC文件上传
    SpringMVC后台数据校验
    SpringMVC@InitBinder使用方法
    C++ this指针
    C++ 析构函数
    C++ 构造函数
    C++ 成员函数的实现
  • 原文地址:https://www.cnblogs.com/xumaomao/p/12750841.html
Copyright © 2011-2022 走看看