我有两本笔记本。第一个笔记本正在使用 tweepy 从 twitter 读取推文并将其写入套接字。其他笔记本正在使用 spark 结构化流 (Python) 从该套接字读取推文并将其结果写入控制台。不幸的是,我没有在 jupyter 控制台上获得输出。代码在 pycharm 上运行良好。
spark = SparkSession \
.builder \
.appName("StructuredStreaming") \
.getOrCreate()
spark.sparkContext.setLogLevel("ERROR")
# This is Spark Structured Streaming Code which is reading streams from twitter and showing them on console.
tweets = spark \
.readStream \
.format("socket") \
.option("host", "127.0.0.1") \
.option("port", 7000) \
.load()
query = tweets \
.writeStream \
.option("truncate", "false") \
.outputMode("append") \
.format("console") \
.start()
query.awaitTermination()
Run Code Online (Sandbox Code Playgroud) apache-spark spark-streaming pyspark jupyter-notebook spark-structured-streaming
假设我们有 2 个文件,file#1 在 12:55 创建,file#2 在 12:58 创建。在阅读这两个文件时,我想添加一个新列“creation_time”。属于 file#1 的行在“creation_time”列中具有 12:55,属于 file#2 的行在“creation_time”列中具有 12:58。
new_data = spark.read.option("header", "true").csv("s3://bucket7838-1/input")
Run Code Online (Sandbox Code Playgroud)
我使用上面的代码片段来读取“input”目录中的文件。
我正在尝试用状态机触发粘合作业。当它触发作业时,几秒钟后我可以从glue控制台看到作业已完成,但在状态机中它仍然停留在进行中状态,我等了1小时但它仍然保持在进行中状态。这是我的状态机,
这是状态机的代码,
{
"StartAt": "Glue: Convert Raw to JSON",
"States": {
"Glue: Convert Raw to JSON": {
"Type": "Task",
"Resource": "arn:aws:states:::glue:startJobRun.sync",
"Parameters": {
"JobName": "ConvertLandingToRaw",
"Arguments": {
"--bucket.$": "$.detail.requestParameters.bucketName",
"--key.$": "$.detail.requestParameters.key"
}
},
"Next": "Glue: Convert JSON to Parquet"
},
"Glue: Convert JSON to Parquet": {
"Type": "Task",
"Resource": "arn:aws:states:::glue:startJobRun.sync",
"Parameters": {
"JobName": "ConvertJsonToParquet"
},
"End": true
}
},
"Comment": "Re-partitioning the data and changing the data type."
}
Run Code Online (Sandbox Code Playgroud)
谁能帮我解决这个问题。我尝试了很多链接但无法得到满意的答案。谢谢
我有一个这样的字符串,每一行都用 \n 分隔。
我尝试了多种方法,但找不到任何合适的方法来做到这一点。
列名称 \n 第一行 \n 第二行 例如
"Name,ID,Number\n abc,1,123 \n xyz,2,456"
I want to convert it into pyspark dataframe like this
Name ID Number
abc 1 123
xyz 2 456
Run Code Online (Sandbox Code Playgroud)