<jupyter_start><jupyter_text>Sparkmagic PySpark Example由于腾讯云弹性 MapReduce服务（EMR， https://cloud.tencent.com/product/emr ）暂不支持 livy 组件，我们先使用本地 Spark 和 livy 服务做案例打开 notebook 的 console，输入 /opt/apache-livy-0.7.0-incubating-bin/bin/livy-server，将在本地 8998 端口启动 livy 服务打开 /home/tione/.sparkmagic/config.json，确认下 sparkmagic 的配置 （可以根据 notebook 的资源调整 executorCores 等参数，防止请求过多资源影响 notebook 运行），可以直接使用默认参数 输入 %%info，确认当前的 session 语言配置，应为 pyspark，并且可以查看当前活跃的 session<jupyter_code>%%info<jupyter_output><empty_output><jupyter_text>输入 pyspark 的测试代码, 计算圆周率并打印<jupyter_code>from __future__ import print_function

import sys
from random import random
from operator import add

from pyspark.sql import SparkSession


spark = SparkSession\
    .builder\
    .appName("PythonPi")\
    .getOrCreate()

partitions = int(sys.argv[1]) if len(sys.argv) > 1 else 2
n = 100000 * partitions

def f(_):
    x = random() * 2 - 1
    y = random() * 2 - 1
    return 1 if x ** 2 + y ** 2 <= 1 else 0

count = spark.sparkContext.parallelize(range(1, n + 1), partitions).map(f).reduce(add)
print("Pi is roughly %f" % (4.0 * count / n))<jupyter_output>Starting Spark application
{'fraction_non_alphanumeric': 0.11589113257243196, 'fraction_numerical': 0.025460930640913083, 'mean_word_length': 4.816326530612245, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '402672', 'license': 'Apache-2.0', 'n_tokens_mistral': 536, 'n_tokens_neox': 532, 'n_words': 105, 'path': 'introduction_to_applying_machine_learning/sparkmagic_pyspark/sparkmagic_pyspark.ipynb', 'repo_name': 'mengsuix/tencent-ti-examples', 'size': '1139'}