小编Reg*_*sor的帖子

使用pyspark创建spark数据帧时出现Py4J错误

我用python 3.6安装了pyspark,我使用jupyter notebook来初始化一个spark会话.

from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("test").enableHieSupport.getOrCreate()
Run Code Online (Sandbox Code Playgroud)

运行没有任何错误

但是我写道,

df = spark.range(10)
df.show()
Run Code Online (Sandbox Code Playgroud)

它抛出了一个错误 - >

Py4JError: An error occurred while calling o54.showString. Trace:
py4j.Py4JException: Method showString([class java.lang.Integer, class java.lang.Integer, class java.lang.Boolean]) does not exist
    at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:318)
    at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:326)
    at py4j.Gateway.invoke(Gateway.java:272)
    at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
    at py4j.commands.CallCommand.execute(CallCommand.java:79)
    at py4j.GatewayConnection.run(GatewayConnection.java:214)
    at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我要面对这个问题.

如果我做,

from pyspark import SparkContext
sc = SparkContext()
print(sc.version)

'2.1.0'
Run Code Online (Sandbox Code Playgroud)

python apache-spark pyspark

8
推荐指数
3
解决办法
1万
查看次数

如何从 Python 中的变量中选择 pySpark 数据框中的列

我在 python 中有一个 pySpark 数据框 -

from pyspark.sql.functions import col
dataset = sqlContext.range(0, 100).select((col("id") % 3).alias("key"))
Run Code Online (Sandbox Code Playgroud)

列名称是关键,我想使用变量选择此列。

myvar = "key"
Run Code Online (Sandbox Code Playgroud)

现在我想使用myvarselect 语句中的变量来选择此列

我试过这个

dataset.createOrReplaceTempView("dataset")
spark.sql(" select $myvar from dataset ").show
Run Code Online (Sandbox Code Playgroud)

但它返回给我一个错误

no viable alternative at input 'select $'(line 1, pos 8)

我如何在 pySpark 中实现这一目标?

请注意,我将来可能会有不同的列,并且我想传递 1 个以上的变量或者可能是一个listintoSELECT子句。

python pyspark

5
推荐指数
1
解决办法
1万
查看次数

如何在 pandas 的每个分区窗口中获得密集排名

我有一个 pandas 数据框,如下所示

Dominant_Topic  word    appearance
Topic 0         aaaawww         50
Topic 0         aacn            100
Topic 0         aaren           20
Topic 0         aarongoodwin    200
Topic 1         aaronjfentress  10
Topic 1         aaronrodger     20
Topic 1         aasmiitkap      30
Topic 2         aavqbketmh      10
Topic 2         ab              10
Topic 2         abandon         1
Run Code Online (Sandbox Code Playgroud)

我想为每个分区获得密集排名,分区列是名为 的列Dominant_Topic。排名应根据每个分区中单词出现的次数降序排列。所以输出看起来像 -

Dominant_Topic  word    appearance    dense_rank
Topic 0         aaaawww         50     3
Topic 0         aacn            100    2
Topic 0         aaren           20     4
Topic 0         aarongoodwin    200    1
Topic 1         aaronjfentress  10     3 …
Run Code Online (Sandbox Code Playgroud)

python pandas

4
推荐指数
1
解决办法
5275
查看次数

AWS Lambda在python中构建外部依赖库

我正在尝试使用Python创建一个AWS Lambda函数。我想要创建一个zip部署程序包,然后将其上传到我的AWS环境中,而不是一个内联函数。我的源代码位于test.py文件中,而其他依赖项(如numpy,sklearn等)与源代码位于同一文件夹中。

我测试我的lambda函数时遇到错误。

无法导入模块'test':没有名为'sklearn .__ check_build._check_build'的模块___________________________________________________________________________ / var / task / sklearn / __ check_build的内容:setup.py
__pycache__ _check_build.cp36-win_amd64.pyd __init__.py ____________________________________________学习尚未正确构建。如果您已经从源代码安装了scikit-learn,请不要忘记在使用之前构建该软件包:运行python setup.py installmake在源目录中。如果您使用了安装程序,请检查它是否适合您的Python版本,操作系统和平台。

这是我驻留在test.py中的python源代码

from sklearn.model_selection import train_test_split
print('Loading function')


def lambda_handler(event, context):
    #print("Received event: " + json.dumps(event, indent=2))
    print("value1 is " + event['key1'])
    print("value2 is " + event['key2'])
    print("value3 is " + event['key3']) 
    return event
Run Code Online (Sandbox Code Playgroud)

如果我在源代码中导入numpy,则会遇到类似的问题。(无法导入多数组)

我正在使用安装每个库pip install numpy/scikit-learn -t /path/to/mydir/

这是我使用pip install命令后的文件夹结构

请帮助我解决问题。谢谢 !!

python lambda numpy amazon-web-services scikit-learn

3
推荐指数
1
解决办法
1860
查看次数

如何在 Spark DataFrame 中从 AWS S3 读取多个文件?

我在 S3 存储桶中有一堆具有这种模式的文件

myfile_2018_(0).tab
myfile_2018_(1).tab
myfile_2018_(2).tab
..
myfile_2018_(150).tab
Run Code Online (Sandbox Code Playgroud)

我想通过读取所有这些文件来创建一个 Spark Dataframe。如何创建此正则表达式模式并读取文件?

这些文件有标题。我正在使用 Scala 来完成这个任务。

scala apache-spark apache-spark-sql

2
推荐指数
1
解决办法
1万
查看次数

如何在 pyspark 数据帧上使用 forEachPartition?

我正在尝试在具有 8 个分区的 RDD 上使用 pyspark 来使用 forEachPartition() 方法。我的自定义函数尝试为给定的字符串输入生成字符串输出。这是代码

from google.cloud import language
from google.cloud.language import enums
from google.cloud.language import types
import pandas as pd
import datetime

def compute_sentiment_score(text):
    client = language.LanguageServiceClient()
    document = types.Document(content=text,type=enums.Document.Type.PLAIN_TEXT, language='en')
    sentiment = client.analyze_sentiment(document=document).document_sentiment
    return str(sentiment.score)

def compute_sentiment_magnitude(text):
    client = language.LanguageServiceClient()
    document = types.Document(content=text,type=enums.Document.Type.PLAIN_TEXT, language='en')
    sentiment = client.analyze_sentiment(document=document).document_sentiment
    return str(sentiment.magnitude)

import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="/path-to-file.json"

imdb_reviews = pd.read_csv('imdb_reviews.csv', header=None, names=['input1', 'input2'], encoding= "ISO-8859-1")

imdb_reviews.head()

    input1                                         input2
0   first think another Disney movie, might good, ...   1
1 …
Run Code Online (Sandbox Code Playgroud)

rdd pyspark

2
推荐指数
1
解决办法
5288
查看次数

如何将谷歌云自然语言实体情感响应转换为 Python 中的 JSON/dict?

我正在尝试使用谷歌云自然语言 API 来分析实体情绪。

from google.cloud import language_v1
import os 
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'path/to/json'

client = language_v1.LanguageServiceClient()
text_content = 'Grapes are good. Bananas are bad.'

# Available types: PLAIN_TEXT, HTML
type_ = language_v1.Document.Type.PLAIN_TEXT

# Optional. If not specified, the language is automatically detected.
# For list of supported languages:
# https://cloud.google.com/natural-language/docs/languages
document = language_v1.Document(content=text_content, type_=language_v1.Document.Type.PLAIN_TEXT)

# Available values: NONE, UTF8, UTF16, UTF32
encoding_type = language_v1.EncodingType.UTF8
response = client.analyze_entity_sentiment(request = {'document': document, 'encoding_type': encoding_type})
Run Code Online (Sandbox Code Playgroud)

然后我从响应中打印出实体及其属性。

for entity in response.entities:
    print('=' * 20)
    print(type(entity)) …
Run Code Online (Sandbox Code Playgroud)

python serialization json google-cloud-language

1
推荐指数
1
解决办法
542
查看次数

如何使用列表推导式根据字长过滤字符串列表?

我正在尝试过滤掉字符串列表中等于 1 个字符或 2 个字符的单词。这是我的示例数据 -

l = ['new vaccine tech long term testing',
    'concerned past negative effects vaccines flu shot b',
    'standard initial screening tb never tb chest x ray']
Run Code Online (Sandbox Code Playgroud)

我尝试编写此逻辑,但不知何故,输出是单词列表而不是句子列表

cleaner = [ ''.join(word) for each in l for word in each.split() if len(word) > 2 ]


cleaner
['new',
 'vaccine',
 'tech',
 'long',
 'term',
 'testing',
 'concerned',
 'past',
 'negative',
 'effects',
 'vaccines',
 'flu',
 'shot',
 'standard',
 'initial',
 'screening',
 'never',
 'chest',
 'ray']
Run Code Online (Sandbox Code Playgroud)

我如何使这个输出如下

output = ['new vaccine tech long term testing',
    'concerned past …
Run Code Online (Sandbox Code Playgroud)

python list-comprehension

1
推荐指数
1
解决办法
45
查看次数

如何在R中安装“ rlang”包的特定版本?

我在Mac OS上使用R Studio,我想使用caret软件包进行一些数据分析。但是,caret取决于rlang软件包,当我尝试加载caret软件包时,出现此错误-

> library(caret)
Error: package or namespace load failed for ‘caret’ in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]):
 namespace ‘rlang’ 0.2.2 is already loaded, but >= 0.3.0.1 is required
In addition: Warning message:
package ‘caret’ was built under R version 3.4.4 
Run Code Online (Sandbox Code Playgroud)

rlang从用户界面中删除了该软件包,并尝试再次安装它,但是我遇到了以下问题-

> install.packages("rlang")
trying URL 'https://cran.rstudio.com/bin/macosx/el-capitan/contrib/3.4/rlang_0.3.0.1.tgz'
Content type 'application/x-gzip' length 1074663 bytes (1.0 MB)
==================================================
downloaded 1.0 MB


The downloaded binary packages are in
    /var/folders/kh/9lkdq11x3sv56717v0700p_r_16f9p/T//RtmplrCvGX/downloaded_packages
> library(rlang) …
Run Code Online (Sandbox Code Playgroud)

r

0
推荐指数
1
解决办法
6509
查看次数