Pyspark与Jupyter的集成

我已经在我的机器上安装了Anaconda(python 2.7版),并用“PYSPARK\u DRIVER\u python=jupyter”和“PYSPARK\u DRIVER\u python\u OPTS=“notebook”启动了jupyter笔记本,我正在连接到jupyter笔记本,但也无法运行“print”命令。当我运行命令时,它将进入下一行,但不显示输出,并且打印不会以彩色突出显示 我已经在我的windows机器(独立模式)中安装了pyspark并在命令提示符下运行,它工作正常……

Pyspark-在groupByKey之后,根据键计算不同的值?

我想根据键找到多少不同的值,例如,假设我有 x = sc.parallelize([("a", 1), ("b", 1), ("a", 1), ("b", 2), ("a", 2)]) 我已经完成了groupByKey的使用 sorted(x.groupByKey().map(lambda x : (x[0], list(x[1]))).collect()) x.groupByKey().mapValues(len).collect() 输出将由like [('a', [1, 1, 2])

Pyspark StructType不能接受对象?

我如何解决这个问题 rdd.collect() //['3e866d48b59e8ac8aece79597df9fb4c'...] rdd.toDF() //Can not infer schema for type: <type 'str'> myschema=StructType([StructField("col1", StringType(),True)]) rdd.toDF(myschema).show() rdd.collect()/['3e866d48b5

如何在PySpark中合并多个RDD

我想使用一个键将多个RDD合并成一个RDD。有没有一种有效的方法来代替多次加入 例如: Rdd_1 = [(0, a), (1, b), (2, c), (3, d)] Rdd_2 = [(0, aa), (1, bb), (2, cc), (3, dd)] Rdd_3 = [(0, aaa), (1, bbb), (2, ccc), (3, ddd)] 我认为输出应该是这样的 Rdd = [(0, a, aa, aaa), (1, b, bb, bbb), (2, c, cc, ccc),

字符“^在pyspark 2.0中按箭头键时,按[A”;“;^[B”;“;^[C”;“;^[D”;]

在pyspark 2.0中按箭头键时,我得到字符。 我在Cent OS上的虚拟机上安装了spark 1.6和spark 2.0。spark 1.6没有问题 由于我在pyspark 2.0中使用Python2.7,“pip2.7安装readline”不起作用。 我试过了 但这并不能解决问题。这些是ANSI转义序列。^[代表转义字符(ASCII 27),下面包括序列的类型和参数。请阅读更多有关它们的信息。head-2/path/to/SPARK version-*/bin/pyspark的输出是什么

计算PySparkSQL联接中每个不同值在列中出现的次数

我使用pysparksql将两个表连接在一起,一个包含带有经度和纬度的犯罪地点数据,另一个包含带有相应经度和纬度的邮政编码 我想弄清楚的是如何统计每个邮政编码内发生的犯罪数量。我是PySpark的新手,我的SQL已经生锈了,所以我不确定自己哪里出了问题 我曾尝试使用COUNTDISTINCT,但这只是给出了不同邮政编码的总数 mySchema = StructType([StructField("Longitude", StringType(),True), StructField("Latit

Pyspark 如何将名称拆分为不同的列

如何在pyspark中将全名拆分为不同的列 输入CSV: Name,Marks Sam Kumar Timberlake,83 Theo Kumar Biber,82 Tom Kumar Perry,86 Xavier Kumar Cruse,87 FirstName,MiddleName,LastName,Marks Sam,Kumar,Timberlake,83 Theo,Kumar,Biber,82 Tom,Kumar,Perry,86 Xavier,Kumar,Cruse,87 输出

Pyspark-是否为每个键添加缺少的值?

我有一个Pyspark数据框,其中包含一些非唯一的键键,以及一些列数字和值 对于大多数键,数字列从1到12,但对于其中一些键,数字(例如,我们有数字[1,2,5,9])。我想添加缺少的行,这样对于每个键,我们就可以用最后看到的值填充1-12范围内的所有数字 所以这张桌子 key number value a 1 6 a 2 10 a 5 20 a 9 25 我想去 key

Pyspark-如何复制/复制行?

我需要从数据帧中“克隆”或“复制”/“复制”每一行 我什么也没发现,我只知道我需要使用explode 例如: ID - Name 1 John 2 Maria 3 Charles 输出: ID - Name 1 John 1 John 2 Maria 2 Maria 3 Charles 3 Charles 谢谢您可以使用数组重复和分解(Spark2.4+) 对于重复的: from pyspark.sql import f

读取时出错。使用pyspark从phoenix写入

我试图在HDP2.6.3沙盒上构建一个数据管道。(docker)我正在使用pyspark和phoenix(4.7)以及HBase 我已经从maven安装了phoenix项目,并成功地创建了一个包含测试记录的表。我也可以在Hbase中看到数据 现在,我尝试使用pyspark从表中读取数据,代码如下: import phoenix from pyspark import SparkContext from pyspark.sql import SQLContext sc = SparkContex

Pyspark can';找不到模块';图形框架';——朱皮特

我正在尝试按照我已经阅读过的一些说明安装graphframes包 我的第一次尝试是在命令行中执行此操作: pyspark--packages graphframes:graphframes:0.5.0-spark2.1-s_2.11 这是完美的工作和下载成功地完成了在机器上 但是,当我尝试在Jupyter笔记本中导入包时,它会显示错误: can't find module 'graphframes' 我的第一次尝试是将包文件夹/graphframes复制到/site包,但我无法使用简单的c

函数中的左键和右键-PySpark SQL

我试图在PySpark中转换下面的SQL查询,但不知何故,它不起作用 选择 明显的* 从数据集 左图('123','203')中的(帕特,3) 在获取PAT列的子字符串后,可以使用isin运算符: df_data = spark.createDataFrame([['123221'], ['2321'], ['123221'], ['20322']], ['PAT']) df_data.show() +------+ | PAT| +------+ |123221| | 2321| |1

使用pyspark在数据帧中动态填充空列

我的dataframe有3列,在这三列中,有可能在第3列中有null。该DF中的总记录为200万条。 我需要通过mysql数据库中的一个值来填充这个空值(基本上是调用一个返回值的函数)。我可以考虑在每一行上循环,但考虑到数据量,这可能会耗费更多的时间。 我知道如何用静态值填充空值,但这是完全动态的。 谢谢你的帮助 当做 Robin如果我没有弄错您的问题,那么如果以前有Null值,您希望在列中有一些唯一的值。一种可能的方法是使用以下代码,它检查value列中的Null值。如果它发现Null,它将使

pyspark检查HH:mm:ss是否在范围内

我有一些数据看起来像这样 time 08:28:24 22:20:54 12:59:38 21:46:07 我想选择介于16:00:00和23:59:59之间的时间,这是一个闭合范围 我该拿它怎么办?”“时间”列类型为字符串 谢谢大家! 转换列时,可以使用列函数。请参见下面带有注释的示例: import datetime from pyspark.sql import functions as F from pyspark.sql import types as T #pyspark do

Pyspark Pypark结构化流式写入,分批写入拼花地板

我正在spark结构化流数据帧上进行一些转换。我将转换后的数据帧存储为hdfs中的拼花文件。现在我希望对hdfs的写入应该成批进行,而不是先转换整个数据帧,然后存储数据帧 下面是一个拼花地板水槽示例: # parquet sink example targetParquetHDFS = sourceTopicKAFKA .writeStream .format("parquet") # can be "orc", "json", "csv", etc. .outputMo

如何在数据帧中的行数上循环pyspark数据帧

我的pyspark数据框是“值”: 我想使用pyspark循环到df的每个值 我的代码: out = [] for i in values.collect(): print(i) 我基本上想做的是(for(i in 1:nrow(values)) 我正在pyspark中尝试下面的代码,但结果如下 Row(w_vote=0.1) Row(w_vote=0.2) Row(w_vote=0.25) Row(w_vote=0.3) Row(w_vote=0.31) Row(w_vote=0.3

Pyspark 在分割柱和编写拼花文件时,大量时间会增加

我处理临床数据,所以很抱歉我不能显示任何输出,因为它是HIPAA规定的,但我会尽我所能填补任何空白 我刚毕业于数据科学专业,从来没有花太多时间研究过spark系统,但我现在担任新的角色。我们正在从一个我将调用udf_函数的函数中收集输出,该函数从医生那里获取临床记录(报告),并返回函数从python函数调用_函数中定义的输出。下面是我用来完成这项任务的代码 def call_function(report): //python code that generates a list of

从文件中读取规则并将这些规则应用于pyspark数据帧行

我有一本csv规则手册,数据如下: operator|lastname|operator|firstname|val equals | ABC |contains| XYZ | 2 equals | QWE |contains| rty | 3 因此,如果lastname等于ABC,并且firstname类似于XYZ,那么val将是2,就像那样。此文件可以更改或修改,因此条件将是动态的。将来甚至可以添加行 现在,我的pyspark数据帧是: lastna

如何捕获pyspark函数未强制转换的行?

我编写了一个函数,将数据帧的数据类型转换为Pyspark中指定的模式。如果无法转换为相应的数据类型,则Cast函数会以静默方式将条目设为Null e、 g.F.col(col\u name).cast(IntegerType())将类型转换为整数,如果列值很长,则将其设置为null 有没有办法捕获它转换为Null的情况?在每天运行的数据管道中,如果未捕获到这些数据,它将静默地使它们为Null并传递给上游系统。在执行cast步骤后,如何执行isNull()操作?如果UDF无法转换数据类型,则可能需

应用StringIndexer更改PySpark数据帧中的列

我是pyspark的新手。我想应用StringIndexer将列的值更改为index。 我查看了这篇帖子: 此解决方案将创建一个新列,而不是更新输入列。有没有办法更新current列?我尝试使用相同的名称进行输入和输出,但不起作用 label_stringIdx = StringIndexer(inputCol ="WindGustDir", outputCol = "WindGustDir_index") 您不能简单地更新该列。但你能做的是 使用StringIndexer创建新列 删除原

替换列表列pyspark中的null

我有一个如下所示的数据帧,并尝试使用df.fillna(0)或df.fillna(“nn”)替换null,这两种方法似乎对数据帧没有影响。如有任何建议,将不胜感激。 id |值 +-----------+------------+ 1 |[“a”、“b”、“c”] 6 | null您确定已将新数据帧分配给旧数据帧吗?因为它不在原地做。 您应该这样做: df = df.fillna(0) df = df.fillna("nn") 您确定已将新数据帧指定给旧数据帧吗?因为它不在原地做。 您应该这

将np.sign应用于pyspark系列,即使使用udf也无法工作

我目前正在尝试使用numpy内置函数np.sign将所有行值转换为特定符号 我的代码: import numpy as np pd_dataframe = pd.DataFrame({'id': [i for i in range(10)], 'values': [10,5,3,-1,0,-10,-4,10,0,10]}) sp_dataframe = spark.createDataFrame(pd_dataframe) sign_a

如何使用pyspark将数据帧的每一行保存为HDFS文件

我有一个用ctrl分隔的文件,其标题如下: 文件名“,”文件元数据“,”数据内容“,”状态“,”错误类型“,”错误消息“ 我需要将文件的每个记录的各个文件转储到hdfs中,并将其转储到诸如-basepath\u errortype\u filename/file.json这样的目录中,文件的内容将是data\u content列 显示示例数据: >>> ff_df = ff_rdd.toDF(['file_name','file_metadata','data_content'

pyspark数据帧中的平均函数

我有一个如下所示的数据框 如果用户提供了一个值,我想计算元组中第二个数字的平均值,这些数字来自该特定值上方的所有行 示例:假设该值为10。我想获取“value”列中的值大于或等于10的所有行,并计算这些行的平均值。在本例中,它将占据前两行,输出如下所示 有人能帮我吗?另一个选项:你可以先过滤数据帧,然后计算平均值;使用getItem方法访问结构列中的value1字段: import pyspark.sql.functions as f df.filter(df.value >= 10

Pyspark基于今天获取上一季度的最后日期';日期

在代码回购中,使用pyspark,我试图使用今天的日期,基于此,我需要检索上一季度的最后一天。然后,该日期将用于过滤数据框中的数据。我试图在代码repo中创建一个数据帧,但这不起作用。我的代码在代码工作簿中工作。这是我的代码工作簿代码 将日期时间导入为dt 导入pyspark.sql.F函数 def unnamed(): date_df=spark.createDataFrame([(dt.date.today(),)],['date']) 日期=日期\ .带列('qtr\u开始日期',F.da

从pyspark列中删除十进制值

我有一个pyspark dataframe列,其中有一些值是字符串,一些值是数字,如下所示- Source_ids abc_123 1234.0 345 abc_cad K-123 540.0 456.0 我想把小数部分去掉。所以结果应该是 Source_ids abc_123 1234 345 abc_cad K-123 540 456 我们不能将此列设为长类型,因为它也有文本。如何实现它?使用regexp\u replace。将\..*$替换为空字符串' 此表达式查找点,并替换其后的所有

Pyspark 如何创建python库以及如何在palantir foundry中导入它

为了泛化python函数,我想将函数添加到python库中,以便可以跨多个存储库使用这些函数。任何人请回答以下问题 1)如何创建我们自己的python库 2) 如何跨多个存储库导入这些库 如何在Palantir Foundry中创建python库 要创建新库,可以通过创建新存储库来实现。当提示您初始化存储库时,您应该有一个选项,内容如下: Python Library Template for publishing a Python library package. Consuming new

Pyspark 如何一次运行多个Spark 2.0实例(在多个Jupyter笔记本中)?

我有一个脚本,可以方便地在Jupyter笔记本中使用Spark。这很好,除非我在第二个笔记本中运行spark命令(例如测试一些临时工作) 我收到一条很长的错误消息,其关键部分似乎是: Py4JJavaError:调用o31.json时出错。 :java.lang.RuntimeException:java.lang.RuntimeException:无法实例化org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient` 原因:错误

Pyspark 为什么Pypark给出了错误的方差值?

我在pyspark有一张登记表 +--------+-------+--------+------------+---------+-----------------+----------------------+ |order_id|user_id|eval_set|order_number|order_dow|order_hour_of_day|days_since_prior_order| +--------+-------+--------+------------+---------+

运行pyspark时出错

我试图通过终端运行pyspark。从我的终端,我运行snotebook,它将自动加载jupiter。之后,当我选择python3时,终端会显示错误 [IPKernelApp]警告|处理PYTHONSTARTUP文件时出现未知错误 /Users/simon/spark-1.6.0-bin-hadoop2.6/python/pyspark/shell.py 下面是我的.bash_配置文件设置: export PATH="/Users/simon/anaconda/bin:$PATH" export

在pyspark中使用groupby时无法获取所有列

像这样使用时,我遇到以下错误: columnList = [item[0] for item in df1.dtypes if item[1].startswith('string')] df2 = df1.groupBy("TCID",columnList).agg(mean("Runtime").alias("Runtime")) 从pyspark.sql.DataFrame.groupBy获取“要分组的列列表” 代码失败,因为第二个参数(columnList)不是有效的列标识符。因此错

如何使用createDataFrame创建pyspark数据帧?

我知道这可能是个愚蠢的问题。我有以下代码: from pyspark.sql import SparkSession rows = [1,2,3] df = SparkSession.createDataFrame(rows) df.printSchema() df.show() 但我有一个错误: createDataFrame() missing 1 required positional argument: 'data' 我不明白为什么会发生这种情况,因为我已经提供了“数据”,即变量行

Pyspark 火花流到功率BI

顾名思义,我希望在Power BI中看到实时数据。我已经建立了到spark streaming的管道,在那里我正在处理数据,现在我想进入Power BI。最好使用Python 现在根据我的理解,可能有以下提到的不同方式 将流数据存储到Azure Blob中,并在power BI中使其成为实时连接。我知道从纸面上看这听起来很完美,但有可能这样做吗 第二种方法是在PowerBI中创建一个推送数据集,获取RESTAPI URL并将Spark streaming的请求发布到该数据集。所以我的问题是,是否

Sagemaker PySpark:内核已死亡

我按照说明设置了一个EMR集群和一个SageMaker笔记本。直到最后一步,我才发现任何错误 当我在Sagemaker中打开一个新笔记本时,我会收到以下信息: The kernel appears to have died. It will restart automatically. 然后: The kernel has died, and the automatic restart has failed. It is possible the kernel

Pyspark Pypark concat多个柱,聚结不起作用

下面的代码抛出列not iterable错误 代码: df = spark.createDataFrame([('abcd', '123')], ['s', 'd']) df.select(concat_ws('', coalesce(df.s, "sometext"), coalesce(df.d, "sometext")).alias('sd')).show() concat_ws要求将分隔符作为第一个参数,请参阅。因此,如果不想使用分隔符,可以执行以下操作: df.select(conc

pyspark-kafka流数据处理程序

我将spark 2.3.2与pyspark一起使用,刚刚发现foreach和foreachBatch在此配置中的“DataStreamWriter”对象中不可用。问题是公司Hadoop是2.6,spark 2.4(提供了我所需要的)不起作用(SparkSession正在崩溃)。还有其他方法可以将数据发送到自定义处理程序并处理流数据吗 这是我到目前为止的代码: def streamLoad(self,customHandler): options = self.options

Pyspark 如何在DataRicks中读取数据包含双引号和逗号分隔的csv文件

我正在尝试使用DataRicks中的spark dataframe读取csv文件。csv文件包含双引号和逗号分隔的列。我尝试了以下代码,但无法读取csv文件。但是,如果我在datalake中检查该文件,我可以看到该文件 输入和输出如下所示 df=spark.read.format(“com.databricks.spark.csv”)\ .选项(“标题”、“正确”)\ .选项(“全部”、“真实”)\ .选项(“转义”、“转义”)\ .csv(“mnt/A/B/test1.csv”) 输入文件数

如何展平每个id包含多行的pyspark数据帧?

我有一个pyspark数据帧,它有两个id列id和id2。每个id都被精确地重复n次。所有id都具有相同的id2。我试图根据id2将每个唯一的id生成的矩阵“展平”为一行 下面是一个示例来解释我试图实现的目标,我的数据框架如下所示: +----+-----+--------+--------+ | id | id2 | value1 | value2 | +----+-----+--------+--------+ | 1 | 1 | 54 | 2 | +----+---

pyspark:将字符串转换为日期格式,不含分钟、编码和小时

您好,我想将字符串日期转换为日期格式: 例如从190424年到2019-01-24年 我尝试使用以下代码: tx_wd_df = tx_wd_df.select( 'dateTransmission', from_unixtime(unix_timestamp('dateTransmission', 'yymmdd')).alias('dateTransmissionDATE') ) 但我得到了这个格式:2019-01-24 00:04:00 我只想要2019-01-24 有

在pyspark中运行sql查询时获取pyspark.sql.utils.ParseException

我正在pyspark上运行SQL查询,并得到以下错误 你能帮帮我吗 query = "select DENSE_RANK() OVER(ORDER BY PROD_NM, CNTRY) AS SYSTEM_ID, id AS SOURCE_ID,source_name,prod_nm,CNTRY,source_entity,entity_name from(SELECT distinct id, 'AMPIL' as SOURCE_NAME,prod_nm, 'PROD2' AS Source

使用pyspark从databricks中删除红移表

我尝试连接到一个名为stv_sessions的红移系统表,我可以将数据读入数据帧 此stv_sessions表是一个红移系统表,其中包含当前运行的所有查询的进程id 要从运行中删除查询,我们可以这样做 select pg_terminate_backend(pid) 如果我直接连接到redshift(使用aginity),这对我来说是可行的,但当我试图从databricks运行时,它会给我带来不充分的预防问题 简单地说,我不知道如何从databricks笔记本运行查询 我已经试过了 kill_

Pyspark 从HDFS读取拼花地板和模式问题

当我尝试从HDFS读取拼花地板文件时,我得到了所有混合情况下的模式。我们能把它转换成小写吗 df=spark.read.parquet(hdfs_location) df.printSchema(); root |-- RecordType: string (nullable = true) |-- InvestmtAccnt: string (nullable = true) |-- InvestmentAccntId: string (nullable = true) |-- Financ

获取pyspark中与最新时间戳对应的行

我有一个数据帧: +--------------+-----------------+-------------------+ | ecid| creation_user| creation_timestamp| +--------------+-----------------+-------------------+ |ECID-195000300|USER_ID1 |2018-08-31 20:00:00| |ECID-195000300|USER

PySpark/计算出现次数,并使用UDF创建一个新列

我有一个包含多列的数据框,包括video\u id和tags 我需要在我的df中创建一个名为occurrencias_music的新列,其中字符串“music”的出现次数作为任何标记的子字符串。标签不一定与“music”完全相同,但它包含它作为子字符串 稍后,我们的想法是实现一个UDFsubtag\u music\u UDF,它返回IntegerType(),并封装传统的python函数subcadena\u en\u vector(tags): 为此,我需要一个名为subcadena\u en

pySpark将camelCase字符串拆分为两个字符串

我正在尝试使用pySpark将camelCase字符串拆分为两个字符串,基本上与Python中的操作相同: re.sub(r'([a-z](?=[A-Z])|[A-Z](?=[A-Z][a-z]))', r'\1 ', 'this is a teSt') 我得到的最接近的方法是使用regexp\u replace,使用类似以下的内容: .withColumn('split_camelcase', regexp_replace('stringColumn', r'([a-z](?=[A-Z])|

Pyspark 从数据帧名称中删除数字

我引用的数据帧名称基于我摄取的文件。但是,文件中可能包含数字。例如,文件名可以是DocumentList20200101 我正在尝试删除这些数字,以便数据帧名称为DocumentList 我非常感谢您在这方面的帮助。将变量作为数据帧的名称不是一个好做法。为此构建一个数据帧字典。Hi@mck。嗯,是的,这感觉不是一种稳定的工作方式。谢谢你的评论。

Pyspark 在另一个数据帧中查找一个数据帧中出现的所有值的最佳方法是什么?

我正在研究spark群集,我有两个数据帧。一个包含文本。另一个是查找表。这两个表都很大(M和N都很容易超过100000个条目)。匹配它们的最佳方式是什么 做交叉连接然后根据匹配过滤结果似乎是一个疯狂的想法,因为我肯定会耗尽内存 我的数据帧如下所示: df1: text 0 i like apples 1 oranges are good 2 eating bananas is healthy . ... . ... M

上一页   1   2   3   4   5    6  ... 下一页 最后一页 共 64 页