pyspark 执行 lcs

a.建表 hive中
b.导入数据
c.验证查询

from pyspark.sql.functions import udf
from pyspark.sql.types import Integer
from pyspark.sql import SparkSerssion

# 提前执行 conda install pyspark
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

spark = SparkSerssion.builder
    .appName("LCS")
    .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])
    return l[-1][-1]

lcs_udf = udf(lcs, IntegerType())
df_score = df.withColumn("score", lcs_udf(df.a, df.b))
df_score.show()
PYSPARK_PYTHON=./ANACONDA/dev/bin/python
cd $SPARK_HOME
./bin/spark-submit \
        --conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=./ANACONDA/dev/bin/python \
        --master yarn-cluster \
        --files $HIVE_HOME/conf/hive-site.xml \
        --archives /usr/local/src/pyspark/dev.zip#ANACONDA \
        /usr/local/src/pyspark/lcs.py
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值