Hi Brian,
Thank you for your clarification.
Actually, I am only trying to run a simple batch pipeline using the Sql
transform locally. [1]
The Kafka error didn't happen to me. I only mentioned it because I found
the same error message on google.
Here is the full error:
Traceback (most recent call last):
File "beam-sql.py", line 18, in <module>
|'sql print' >> beam.Map(print)
File
"C:\Users\XXX\Documents\8-Git\apache_beam\venv\lib\site-packages\apache_beam\pvalue.py",
line 142, in __or__
return self.pipeline.apply(ptransform, self)
File
"C:\Users\XXX\Documents\8-Git\apache_beam\venv\lib\site-packages\apache_beam\pipeline.py",
line 641, in apply
transform.transform, pvalueish, label or transform.label)
File
"C:\Users\XXX\Documents\8-Git\apache_beam\venv\lib\site-packages\apache_beam\pipeline.py",
line 651, in apply
return self.apply(transform, pvalueish)
File
"C:\Users\XXX\Documents\8-Git\apache_beam\venv\lib\site-packages\apache_beam\pipeline.py",
line 694, in apply
pvalueish_result = self.runner.apply(transform, pvalueish,
self._options)
File
"C:\Users\XXX\Documents\8-Git\apache_beam\venv\lib\site-packages\apache_beam\runners\runner.py",
line 188, in apply
return m(transform, input, options)
File
"C:\Users\XXX\Documents\8-Git\apache_beam\venv\lib\site-packages\apache_beam\runners\runner.py",
line 218, in apply_PTransform
return transform.expand(input)
File
"C:\Users\XXX\Documents\8-Git\apache_beam\venv\lib\site-packages\apache_beam\transforms\external.py",
line 304, in expand
pipeline.local_tempdir)
File
"c:\users\XXX\appdata\local\programs\python\python37\lib\contextlib.py",
line 119, in __exit__
next(self.gen)
File
"C:\Users\XXX\Documents\8-Git\apache_beam\venv\lib\site-packages\apache_beam\transforms\external.py",
line 351, in _service
yield stub
File
"C:\Users\XXX\Documents\8-Git\apache_beam\venv\lib\site-packages\apache_beam\transforms\external.py",
line 503, in __exit__
self._service_provider.__exit__(*args)
File
"C:\Users\XXX\Documents\8-Git\apache_beam\venv\lib\site-packages\apache_beam\utils\subprocess_server.py",
line 72, in __exit__
self.stop()
File
"C:\Users\XXX\Documents\8-Git\apache_beam\venv\lib\site-packages\apache_beam\utils\subprocess_server.py",
line 131, in stop
self.stop_process()
File
"C:\Users\XXX\Documents\8-Git\apache_beam\venv\lib\site-packages\apache_beam\utils\subprocess_server.py",
line 181, in stop_process
return super(JavaJarServer, self).stop_process()
File
"C:\Users\XXX\Documents\8-Git\apache_beam\venv\lib\site-packages\apache_beam\utils\subprocess_server.py",
line 141, in stop_process
self._process.send_signal(signal.SIGINT)
File
"c:\users\XXX\appdata\local\programs\python\python37\lib\subprocess.py",
line 1306, in send_signal
raise ValueError("Unsupported signal: {}".format(sig))
ValueError: Unsupported signal: 2
Thank you again and congratulations for the youtube video. It's very nice!
[1]
https://stackoverflow.com/questions/67977704/apache-beam-with-sqltransform-in-direct-runner/67990831#67990831
Att,
Igor Gois
Am Di., 15. Juni 2021 um 19:56 Uhr schrieb Brian Hulette <
[email protected]>:
> Hi Igor,
>
> "Universal Local Runner" is a term we've used in the past for a runner
> that executes your pipeline locally. It's similar to each SDK's
> DirectRunner, except that by leveraging portability we should only need one
> implementation, making it "universal". I don't think we've been using that
> term recently, I'm sorry I mentioned it in that talk and confused things.
>
> The Python DirectRunner is basically the ULR since it is a portable
> runner. Unfortunately there's one big caveat: Python's portable
> DirectRunner (also called FnApiRunner) doesn't support streaming right now.
> So when you use the DirectRunner for a streaming Python pipeline, it ends
> up running on the Python SDK's non-portable DirectRunner. I suspect that's
> the issue you're running into here: SqlTransform and KafkaIO in Python both
> will only work on portable runners, but you likely are trying to run a
> streaming pipeline if you're using KafkaIO.
>
> It's hard to tell for sure from that error message though, could you share
> the full stacktrace?
>
> Brian
>
> On Tue, Jun 15, 2021 at 3:05 PM Igor Gois <[email protected]> wrote:
>
>> Hi,
>>
>> I am trying to run Sql transform on windows using direct runner and
>> apache beam (2.30.0):
>>
>> import apache_beam as beamfrom apache_beam.transforms.sql import SqlTransform
>> with beam.Pipeline() as p:
>> pipe = (
>> p
>> |'hello' >> beam.Create([('SE',400),('SC',500)])
>> |'schema' >> beam.Map(lambda x: beam.Row(
>> state=x[0],
>> population=x[1]
>> ))
>> )
>>
>> sql = (
>> pipe
>> |'sql' >> SqlTransform('SELECT state, population FROM PCOLLECTION')
>> |'sql print' >> beam.Map(print)
>> )
>>
>>
>> And I got this error:
>>
>> File
>> "c:\users\XXX\appdata\local\programs\python\python37\lib\subprocess.py",
>> line 1306, in send_signal
>> raise ValueError("Unsupported signal: {}".format(sig))
>> ValueError: Unsupported signal: 2
>>
>>
>> I followed this video on youtube [1] and it mentions Universal Local
>> Runner (ULR) but I didn't find anything about it on [2]. I also found a
>> similar error on [3] but didn't figure out how to solve it and was related
>> to kafka.
>>
>> Can anyone help me?
>>
>> Thanks in advance
>>
>> [1] https://youtu.be/zx4p-UNSmrA?t=2097
>> [2] https://beam.apache.org/documentation/runners/direct/
>> [3]
>> https://stackoverflow.com/questions/65780044/readfromkafka-throws-valueerror-unsupported-signal-2
>>
>>
>> Igor Gois
>>
>>
>>
>>
>>