美文网首页
python脚本批处理demo

python脚本批处理demo

作者: 小玉1991 | 来源:发表于2021-05-25 17:23 被阅读0次

工作中,要将一个文本数据,一个一个请求某个接口。手动请求太慢了,就用了spark的知识,进行了批量处理。网友可以借鉴一下。

需求:
直接上代码吧

test.py

# from src.helper import request_helper
from pyspark.sql import SparkSession
import http_helper

#从text 文件中获得json数据
def getJsonData():
    # 构建SparkSession实例对象
    spark = SparkSession.builder \
        .appName("SparkSessionExample") \
        .master("local") \
        .getOrCreate()
    # 获取SparkContext实例对象
    sc = spark.sparkContext
    rdd = sc.textFile("data")
    # 查看RDD数据的行数和第一行数据
    print("数据的总量为:", rdd.count())
    line_rdd = rdd.map(lambda line: line.split(' '))
    list = line_rdd.collect()
    return list

def requestHttp(list):
    for i, val in enumerate(list):
        json = {
            "param": [
                {
                    "id": val[1],
                    "region": val[0],
                    "type": 0
                }
            ]
        }
        # http_helper.post("http://127.0.0.1:8888/time", json)
        http_helper.post("http://10.100.192.211:8080/client/config/update/plan/region", json)


if __name__ == '__main__':
    list = getJsonData()
    requestHttp(list)

http_helper.py

import requests

user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,  like Gecko) Chrome/63.0.3239.132 Safari/537.36'
headers = {"Content-Type": "application/json", 'User-Agent': user_agent}


def get(url):
    r = requests.get(url, headers=headers)
    print(r.text)
    return r.text


def post(url, json):
    r = requests.post(url, json=json, headers=headers)
    print(json, r.text)

main.py

写脚本的时候,用来测试的,看是否可以正常访问接口

'''
初始化:所有的Flask都必须创建程序实例,
web服务器使用wsgi协议,把客户端所有的请求都转发给这个程序实例
程序实例是Flask的对象,一般情况下用如下方法实例化
Flask类只有一个必须指定的参数,即程序主模块或者包的名字,__name__是系统变量,该变量指的是本py文件的文件名
'''
from flask import Flask, request
import datetime

server = Flask(__name__)

@server.route('/time', methods=['post', 'get'])
def get_time():
    data = request.get_json()
    print("得到的数据为:", data)
    now = str(datetime.datetime.now())  # 把当前时间转换成字符串
    return "当前的时间是:%s" % now

server.run(port=8888)

run,py

这个类在本次脚本中没有用到,是上一个demo项目。Python后台项目demo

from waitress import serve
import main
serve(main.server, host='0.0.0.0', port=8080)

相关文章

网友评论

      本文标题:python脚本批处理demo

      本文链接:https://www.haomeiwen.com/subject/szdcsltx.html